Autor | Zpráva | ||
---|---|---|---|
An Profil * |
#1 · Zasláno: 24. 6. 2011, 20:21:05
// set parameters for pagination // nastavíme parametry stránkování $strana = 1; // transmit page // přenášíme stránku if (isset($_GET['strana']) && $_GET['strana']> 0) { $strana = $_GET['strana']; } // total number of rows // celkový počet řádků v tabulce $resultCount = mysql_query("SELECT COUNT(*) FROM restauraceaubytovani"); $pocetZaznamu = mysql_result($resultCount, 0); // Set limit and offset // nastavení limitu a offsetu $start = ($strana - 1) * $PZS; $result = mysql_query("SELECT*FROM restauraceaubytovani ORDER by nazev ASC LIMIT ".$start.",".$PZS); // information that we want to page // informace, které chceme stránkovat while($information = mysql_fetch_object($result)) { // use an abbreviated listing // použijeme zkrácený výpis $short_text = mb_substr("$information->popis",'0','150','UTF-8'); $str_end = mb_strrpos($short_text," ",'30','UTF-8'); $short_text = mb_substr($short_text,'0',$str_end,'UTF-8'); $short_text.= ' [...]'; // echo // vykreslení echo " <div class='list'> <a href='/restaurace-ubytovani/podnik/$information->url/'><img alt='Podrobnosti' class='list-img' src='../../../restaurace-ubytovani/images/thumb$information->nahled'></a> <a href='/restaurace-ubytovani/podnik/$information->url/'><h3>$information->typ $information->nazev</h3></a> <p>"; if(!empty($information->telefon)) {echo("+420 $information->telefon, ");} else {} echo"<strong>$information->adresa</strong>, 570 01 Litomyšl <br /> $short_text</p> <div class='moreButton'> <a class='inputButton' href='/restaurace-ubytovani/podnik/$information->url/'>Podrobnosti</a> <a class='inputButton' target='_blank' href='http://maps.google.com/maps?f=q&source=s_q&hl=cs&geocode=&q=$information->adresa, Litomyšl'>Mapa</a> <a class='inputButton' href='javascript:window.print()'>Tisk</a> "; if(!empty($information->email)) {echo("<a class='inputButton' href='mailto:$information->email'>Email</a>");} echo" </div> </div> "; } // exit of information that we want to page // ukončení informací, které chceme stránkovat // rendering pagination // zobrazení stránkování echo "<div class='pagination'>" . "<a class='inputButton' href='/restaurace-ubytovani/strana/" .($strana> 1 ? $strana - 1 : "1"). "/'>«</a> "; // get the total number of pages // získáme celkový počet stran $pocet = (($pocetZaznamu % $PZS)> 0) ? (int)($pocetZaznamu / $PZS) + 1 : $pocetZaznamu / $PZS; // display the browsing // zobrazíme možnosti procházení for ($i = 1; $i <= $pocet; $i++) { if ($i != $strana) { echo "<a class='inputButton' href='/restaurace-ubytovani/strana/$i/'>".$i."</a> "; } else { echo "<a class='inputButton' href='/restaurace-ubytovani/strana/$i/'><b>".$i."</b></a> "; } } // rendering pagination // zobrazení stránkování echo "<a class='inputButton' href='/restaurace-ubytovani/strana/" .(($strana <$pocet) ? $strana + 1 : $pocet) ."/'>»</a>" . "</div>"; Dobrý den, mám tento kód, který funguje zcela správně, jen bych chtěl, aby když mám např. 100 stránek se jich vypsalo max. 10 a to v intervalu (-5;1) a (1;5), tudíž když mám stránky [1],[2],[3],[4],[5]... [101], atd... tak aby se vypsalo pouze 10 možností a to v intervalu mínus 5 stránek a plus pět stránek tudíž [5],[6],[7],[8],[9],[10],[aktuální],[11],[12],[13],[14],[15] zkoušel jsem již několik možností, ale marně proměnná $PSZ určuje počet záznamů na stránce, určuji ho v cookies nebo výchozí na 5 Moc děkuji |
||
Tori Profil |
#2 · Zasláno: 25. 6. 2011, 22:27:35
Od ř.58:
// get the total number of pages // získáme celkový počet stran $pocet = ceil($pocetZaznamu / $PZS); // které stránky se budou zobrazovat? $ukazStranek = 5; $start = ($stranka < $ukazStranek ? 1 : $stranka - $ukazStranek); $stop = $stranka+$ukazStranek; // display the browsing // zobrazíme možnosti procházení for ($i = $start; $i <= $stop; $i++) { Možná to jde i zkrátit takhle, ale nezkoušela jsem, píšu z kompu bez PHP. // které stránky se budou zobrazovat? $ukazStranek = 5; // display the browsing // zobrazíme možnosti procházení for ($i = ($stranka < $ukazStranek ? 1 : $stranka - $ukazStranek); $i <= $stranka+$ukazStranek; $i++) { |
||
An Profil * |
#3 · Zasláno: 26. 6. 2011, 11:20:21
Bohužel toto řešení mi dovoluje listovat do nekonečna a to i pokud je tabulka prázdná - resp. neobsahuje žádné data.
|
||
Jozin Profil |
#4 · Zasláno: 26. 6. 2011, 11:32:29
Používáš proměnnou $PZS, ale nikde ji dřív nevidím. To znamená, že v ní není žádná hodnota. Dál to tedy nečtu máš chybu už na začátku.
|
||
An Profil * |
#5 · Zasláno: 26. 6. 2011, 14:10:24
Již v prvním příspěvku jsem na konci něho definoval (upřesňoval) kde a jak pracuji s proměnnou $PZS. Příště si prosím zkontroluj kdo a (nebo) kde má chybu. Mimoto při pohledu na její užití v SQL dotazu je i pro laika zcela jasné nebo alespoň si může lehce domyslet k čemu ona proměnná slouží.
|
||
Jozin Profil |
#6 · Zasláno: 26. 6. 2011, 14:15:50
An:
Dobře na konec jsem nedošel. Jak jsem psal narazil jsem na tu proměnnou a dále jsem nečetl (jak jsem psal v příspěvku) a je mi jasné, k čemu slouží, ale pokud nemám před kódem nastaveno, co je v té proměnné, což pro mě jako když sem četl zezhora neměl, tak je to pak chyba, když tam není hodnota. Nikde jsem nepsal, že nevím, k čemu proměnná slouží, jen, že jsem nenašel co v ní je a tak jsem dál nečetl a tak jsem se nedostal k textu dole. |
||
An Profil * |
#7 · Zasláno: 26. 6. 2011, 16:27:04
Jozin:
Pořád to vidím jako problém na Vaší straně... minimálně zbrklost... Nehledě na to, že k přidání příspěvku (ve Vašem případně nesmyslného a zbytečného) musíte rolovat stránku mnohem níže než na konec mého příspěvku, že? Rád bych se vrátil k pomoci se skriptem. |
||
Tori Profil |
#8 · Zasláno: 26. 6. 2011, 18:27:10
Tak aby se nezobrazovaly odkazy na neexistující stránky stačí změnit podmínku ve for ([#2] první kus kódu):
for ($i = $start; $i <= $stop || $i <= $pocet; $i++) { |
||
An Profil * |
#9 · Zasláno: 27. 6. 2011, 09:05:02
Problém přetrvává, jestli můžete tak si ten skript zkuste, opravdu listuji třeba až do 150 a víc + se zobrazuje 0.
|
||
Tori Profil |
#10 · Zasláno: 27. 6. 2011, 22:26:09
An:
Už jsem konečně na svém ntb. Omlouvám se za blbé chyby, tohle by už mělo být správně: $ukazStranek = 5; $start = ($strana <= $ukazStranek ? 1 : $strana - $ukazStranek); $stop = $strana+$ukazStranek; // display the browsing // zobrazíme možnosti procházení for ($i = $start; $i <= $stop && $i <= $pocet; $i++) { |
||
Časová prodleva: 13 let
|
0