Autor | Zpráva | ||
---|---|---|---|
Fisak Profil |
#1 · Zasláno: 25. 3. 2013, 22:07:01
Dobrý den. Mám kod na stránkování uplně jednoduchý a rád bych aby se zobrazila pouze aktuální stránka na které jsem a pět stránek před tím a pět stránek potom.. dá se to nějak omezit ?
<?php if(mypage("action")) { $pocet_radku=DB::query("SELECT * FROM [youtube_videos] where [game_url] = %s", mypage("action"), "and [approved] = %s", "yes"); $zaklad_radky = count($pocet_radku); $pocet_stran=ceil($pocet_stran=$zaklad_radky/options('num_pagination')); $i=0; if(count($pocet_radku) > options('num_pagination')) { echo "<div id=\"strankovanitop\"> Stránka: "; while ($i<$pocet_stran) { $i++; echo "<a style=\"color:black; font-size:18px;\" href=\"/games/".mypage("action")."/$i/\">$i</a> || "; } echo "</div>"; } |
||
Tori Profil |
Něco takového?
$zacatek = max(0, ($aktualni_stranka - 5)); // opraveno $konec = min($pocet_stran, $aktualni_stranka + 5); SELECT COUNT(*) . Jestli potřebujete jak data pro aktuální stránku, tak počet záznamů celkem, použijte SELECT SQL_CALC_FOUND_ROWS * FROM ... + SELECT FOUND_ROWS()
|
||
Fisak Profil |
#3 · Zasláno: 25. 3. 2013, 22:25:54 · Upravil/a: Fisak
$pocet_radku=DB::query("SELECT COUNT(*) FROM [youtube_videos] where [game_url] = %s", mypage("action"), "and [approved] = %s", "yes"); $pocet_stran=ceil($pocet_stran=$pocet_radku/options('num_pagination')); A taham jen počet řádků kvůli stránkování.. |
||
Tori Profil |
#4 · Zasláno: 25. 3. 2013, 22:31:39
Fisak:
A DB::query určitě vrací přímo tu hodnotu? Nechybí nějaké fetch nebo fetchSingle? |
||
Fisak Profil |
#5 · Zasláno: 25. 3. 2013, 22:31:48 · Upravil/a: Fisak
Tori:
a ještě s tím max a min.. to ale bude brát od konce -5 stránku a od začátku +5 stránku ne ?? takže když budu mít 100 stran tak to bude brát od 5. strany do 95. strány nebo se pletu ? Tori: $pocet_radku=DB::query("SELECT COUNT(*) FROM [youtube_videos] where [game_url] = %s", mypage("action"), "and [approved] = %s", "yes")->fetchSingle(); $pocet_stran=ceil($pocet_stran=$pocet_radku/options('num_pagination')); v dokumentaci dibi se přímo píše: Počet řádků zjistíme voláním: $rows = count($result); |
||
Tori Profil |
Fisak:
„v dokumentaci dibi se přímo píše:“ count($resultset) je ekvivalent mysql_num_rows .
U min jsem měla překlep, opraveno. Min/max by mělo zabránit přetečení (záporné hodnoty, nebo víc stránek než je dat). |
||
Fisak Profil |
Tori:
Stále nevím jak ten $zacatek a $konec využit.. mám to dát do toho while ?? jakože podmínku ? |
||
Tori Profil |
#8 · Zasláno: 25. 3. 2013, 22:44:09
Myslela jsem spíš for než while.
|
||
Fisak Profil |
#9 · Zasláno: 25. 3. 2013, 22:52:06 · Upravil/a: Fisak
Bohuže mi to ale jde do záporných čísel pokud je to 1 stránka :(
if(mypage("action")) { $pocet_radku=DB::query("SELECT * FROM [youtube_videos] where [game_url] = %s", mypage("action"), "and [approved] = %s", "yes"); $zaklad_radky = count($pocet_radku); $pocet_stran=ceil($pocet_stran=$zaklad_radky/options('num_pagination')); $i=mypage("run") - 5; if(count($pocet_radku) > options('num_pagination')) { echo "<div id=\"strankovanitop\"> Stránka: "; $zacatek = max(0, (mypage("run") - 5)); // opraveno $konec = min($pocet_stran, mypage("run") + 5); for($i >= $zacatek; $i <= $konec; $i++){ echo "<a style=\"color:black; font-size:18px;\" href=\"/games/".mypage("action")."/$i/\">$i</a> || "; } echo "</div>"; } dal jsem tam podmínku if($zacatek <= 0) $zacatek = 1; která mi ovšem také nefunguje.. |
||
Tori Profil |
if(mypage("action")) { $data = DB::query("SELECT * FROM [youtube_videos] where [game_url] = %s", mypage("action"), "and [approved] = %s", "yes"); $pocet_radku = count($data); $pocet_stran = ceil($pocet_radku / options('num_pagination')); if($pocet_radku > options('num_pagination')) { echo "<div id=\"strankovanitop\"> Stránka: "; $zacatek = max(0, (mypage("run") - 5)); $konec = min($pocet_stran, mypage("run") + 5); for($i = $zacatek; $i <= $konec; $i++) { echo "<a style=\"color:black; font-size:18px;\" href=\"/games/".mypage("action")."/$i/\">$i</a> || "; } echo "</div>"; } } |
||
Fisak Profil |
#11 · Zasláno: 25. 3. 2013, 23:04:58
Tori:
Také netuším. Ale přesto děkuji moc :-) |
||
Tori Profil |
#12 · Zasláno: 25. 3. 2013, 23:07:48
Fisak:
Co to fetchSingle vlastně vracelo za hodnotu? FALSE nebo co? Tohle je fakt dost zbytečné, tahat celou tabulku, když potřebujete znát jen počet řádků. |
||
Časová prodleva: 5 dní
|
|||
Fisak Profil |
#13 · Zasláno: 30. 3. 2013, 12:26:46
Tori:
už jsem na to přišel proč to nefungovalo.. Nevím proč ale v DIBI musíte dát "COUNT(sloupec) AS strankovani" a pak to vypíšete $promenna->fetchSingle('strankovani') |
||
Časová prodleva: 11 let
|
0