| 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: 15 let
|
|||
0