..


Спонсоред Линкс

Пагинатион података из МиСКЛ бази

Чланак који је написао Макс Боси

И у нашем Водич за ПХП , што у претходним чланцима посвећен језику, већ смо видели како да искористе на различите начине добитну комбинацију ПХП / МиСКЛ.

Конкретно смо већ видели како издвајање података из ДБ-а, али смо "заборавили" да се обрати "проблем" је врло уобичајено, и то: када евиденције у бази података су посебно бројни, као што можете да их подели на више страница?

У овом чланку, у ствари, ми ћемо видети како да пагинацији велике количине података у датом табела у нашој бази података.
Узмимо пример: да имате сто се зове план се састоји од само три поља: ИД, име и број телефона, и рећи да је ово сто је насељена са 100 евиденције:

Као што можете замислити да би било непрактично да желите да издвојите све сто евиденцију у једну страну, много удобније би да их уклоните их дели на више страна са гомилом података сваког.
Да бисте то урадили да користимо згодна функција родном МиСКЛ-РОК функција која нам омогућава да се утврди тачно колико и коме се бележи да изаберете. Да ради свој посао РОК захтева два параметра: рекорд одласка и број записа за преузимање.

Хајде да видимо практичан пример:






 <?







 / / Креирање променљиве које одређује број записа

 





 / / Да бисте приказали на свакој страници







 $ Кс_паг = 5;









 / / Преузми тренутни број странице.







 / / Генерално се користи Куеристринг







 $ Паге = $ _ГЕТ ['страна'];









 / / Провера да ли $ страница је побољшан ...







 / / ... Иначе, да доделим вредност 1







 иф ($ страна) $ страна = 1;

 







 / / Да се ​​повежем са базом података







 $ Кон = мискл_цоннецт ("лоцалхост", "корисник", "лозинку");







 мискл_селецт_дб ("дб_наме", $ цонн);









 / / Користи мискл_нум_ровс за пребројавање редова у







 / / У табели Агенде







 $ Алл_ровс = мискл_нум_ровс (мискл_куери ("СЕЛЕЦТ ид са дневног реда"));









 / / Користећи једноставну математицку операцију позив







 / / Укупан број страна







 Алл_пагес = $ ставити плафон ($ алл_ровс / $ к_паг);









 / / Обрачун који снимају да почне







 $ Први = ($ страна - 1) * $ к_паг;









 / / Преузми записе за тренутну страницу ...







 / / За коришћење РОК $ од првог и бројим до $ к_паг







 $ Рс = мискл_куери ("СЕЛЕЦТ * ФРОМ календар ЛИМИТ $ први, $ к_паг");







 $ Не = мискл_нум_ровс ($ РС);







 иф ($ број = 0) {



  



 фор ($ к = 0; $ к <$ н $ к + +) {



    



 $ Ров = мискл_фетцх_ассоц ($ РС);



    



 ецхо "<табле> <тр>";



    



 ецхо "<тд>".

 



 $ Ров ['ид'].

 



 "</ Тд>";



    



 ецхо "<тд>".

 



 $ Ров ['име'].

 



 "</ Тд>";



    



 ецхо "<тд>".

 



 $ Ров ['телефонски'].

 



 "</ Тд>";



    



 ецхо '</ тр> </ табле> ";



  



 }







 Елсе {}



  



 ецхо "Но рецордс фоунд!"







 }









 / / Ако укупан странице су више од 1 ...







 / / Ливени везу да иде напред и назад између различитих страница!







 иф ($ алл_пагес> 1) {



  



 иф ($ страна> 1) {



    



 ецхо "<а хреф=\"". $_СЕРВЕР['ПХП_СЕЛФ']. "?паг=". $паг-1. "\">";



    





  



 }

 

  



 иф ($ алл_пагес> $ страна) {



    



 ецхо "<а хреф=\"". $_СЕРВЕР['ПХП_СЕЛФ']. "?паг=". $паг + 1. "\">";



    



 ецхо "Следећа страна </ а>";



  



 }

 





 }









 / / Блиску везу са ДБ







 мискл_цлосе ($ повез);







 >?



Код је добро коментарисао и, према томе, не мислим да постоји потреба за додатно објашњење.

У истој категорији ...
Е-учење
Линук (курс) Линук (курс)
Комплетан водич за опен-соурце система. Полазећи од 49 €.
МиСКЛ (курс) МиСКЛ (курс)
Управљање опен соурце базу података. Полазећи од 39 €.
ПХП (курс) ПХП (курс)
Цео курс за креирање динамичких веб сајтова. Полазећи од 49 €.
Спонсоред Линкс