Autor Zpráva
An
Profil *
// 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"). "/'>&laquo;</a>&nbsp";
         
         // 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>&nbsp;";
            } else { 
                echo "<a class='inputButton' href='/restaurace-ubytovani/strana/$i/'><b>".$i."</b></a>&nbsp;";
            }
         }
         
         // rendering pagination
         // zobrazení stránkování      
         echo "<a class='inputButton' href='/restaurace-ubytovani/strana/" .(($strana <$pocet) ? $strana + 1 : $pocet) ."/'>&raquo;</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
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 *
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
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 *
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
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 *
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
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++) {
Jestli nechcete v případě prázdné tabulky zobrazovat ani to << >>, dejte celé stránkování do podmínky if ($pocetZaznamu).
An
Profil *
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
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++) {

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0