Autor Zpráva
Arady
Profil *
Zdravím,
chtěl bych Vás požádat o menší pomoc.
Zde přikládám script na stránkování. Jenže i přesto,že tam není např. 80 záznamů,což je počet který by měl maximálně vypsat na jednu stránku, tak se mi stejně ukáže odkaz na Další stránku. Toto bych chtěl vyrušit. Děkuji za pomoc :)
<?php
         $dbhost = '###';
         $dbuser = '###';
         $dbpass = '###';
         
         $rec_limit = 80;
         $conn = mysql_connect($dbhost, $dbuser, $dbpass);
         
         if(! $conn ) {
            die('Could not connect: ' . mysql_error(1));
         }
         mysql_select_db('gg_new');
         
         /* Get total number of records */
         $sql = "SELECT count(userid) FROM uzivatele ";
         $retval = mysql_query( $sql, $conn );
         
         if(! $retval ) {
            die('Could not get data: ' . mysql_error());
         }
         $row = mysql_fetch_array($retval, MYSQL_NUM );
         $rec_count = $row[0];
         
         if( isset($_GET{'page'} ) ) {
            $page = $_GET{'page'} + 1;
            $offset = $rec_limit * $page ;
         }else {
            $page = 0;
            $offset = 0;
         }
         
         $left_rec = $rec_count - ($page * $rec_limit);
         $sql = "SELECT userid, uzivatel, funkce, registrovan FROM uzivatele LIMIT $offset, $rec_limit";
            
         $retval = mysql_query( $sql, $conn );
         
         if(! $retval ) {
            die('Could not get data: ' . mysql_error());
         }
         
         
         
         
      ?> 
      <table class="uzivatele">
<tr>
  <th width="30px"><center>#</center></th>
  <th width="250px" align="left">Jméno</th>
  <th width="80px"><center>Funkce</center></th>
  <th width="80px"><center>Registrován</center></th>
  <th width="30px">Kontakt</th>
</tr>
<?
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
    ?>
    <tr>
  <td><center><? echo $row['userid'];?></center></td>
  <td><a href="index.php?site=profile&userid=<?php echo $row['userid']; ?>"><?php echo $row['uzivatel']; ?></a></td>
  <td><center><?php echo $row['funkce']; ?></center></td>
  <td><center><?php echo $row['registrovan']; ?></center></td>
  <td><center><a href="index.php?site=zpravy&site=nova&mid=1&user=<? echo $row['uzivatel'];?>" title="Napsat zprávu"><img src='./images/icons/read.png' alt='Přečteno'></a></center></td>
  </tr>
 
 <?}  ?></table><center>
 <? if( $page > 0 ) {
            $last = $page - 2;
            echo "<a href = \"index.php?site=uzivatele&page=$last\"><- Předchozí strana</a>|";
            echo "<a href = \"index.php?site=uzivatele&page=$page\">Další strana -></a>";
         }else if( $page == 0 ) {
            echo "<a href = \"index.php?site=uzivatele&page=$page\">Další strana -></a>";
         }else if( $left_rec < $rec_limit ) {
            $last = $page - 2;
            echo "<a href = \"$_PHP_SELF?page = $last\"><- Předchozí strana</a>";
         } ?> </center>

Moderátor juriad: Zcenzurovány přihlašovací údaje.
Arady
Profil
Mohl bych poprosit o smazání údaju k hostingu? Omylem jsem to tam nechal a nejde to upravit,protože jsem se nepřihlásil :(
Fisir
Profil
Reaguji na Aradyho:
Tak si to heslo změň, stejně by bylo viditelné (sice jen pro moderátory, ale i tak…) v historii editací, případně by původní podoba tvého příspěvku mohla být uložena na internetu v nějaké cachi.
RastyAmateur
Profil
Arady:
Aby si toho moderátoři dříve všimli, napiš kamkoliv do textu 3 m na sebou...

Jinak řešení by mohlo být, že si zjistíš celkový počet záznamů z databáze a pokud je toto číslo větší než maximální počet výkazů na stránku tak žádné stránkování nevypisuješ...
Lonanek
Profil
Stránkování při nulové hodnotě page se vyhodnocuje na ř. 69.

Mělo by pomoci změnit podmínku na ř. 69 na:
        }else if( $page == 0 AND $rec_limit < $rec_count ) {


Moc nedoporučuji použití MySQL, raději přepracujte scripty na MySQLi či PDO.
Arady
Profil
Reaguji na Lonanka:

Ta podmínka pomohla,ale jen na první stránce. Pokud počet rec_count není větší než rec_limit tak se nezobrazí,ale pokud ano,tak se zobrazí odkaz na další stránku, kde ale i přes to,že tam není tolik záznamů aby byl větší než rec_limit se tam ukáže odkaz na další stránku.
Lonanek
Profil
To je vyhodnoceno na ř. 65, $page > 0

ř. 68 zkusit upravit na:
            if ($left_rec < 0)
            {
                echo "<a href = \"index.php?site=uzivatele&page=$page\">Další strana -></a>";
            }
            

Také bych doporučil všude používat dlouhé tagy => tedy ne <? ale <?php
RastyAmateur
Profil
Arady:
Nejprve musíš zjistit, jestli ještě něco dalšího existuje. První varianta je vytvořit nový dotaz na db, druhá varianta je si nechat vyčíslit aktuální počet řádků, a rovná-li se tomu limitu $rec_limit, tak další pravděpodobně ještě existujou...

Snad je to srozumitelné...
Lonanek
Profil
Reaguji na RastyAmateur:
To přeci ví. Vždyť to je vypočítáno před samotným výpisem, jen to není správně zpodmínkováno.

$left_rec je počet zbývajících záznamů.
Arady
Profil
Lonanek:
To je vyhodnoceno na ř. 65, $page > 0
>
ř. 68 zkusit upravit na:
            if ($left_rec < 1)
            {
                echo "<a href = \"index.php?site=uzivatele&page=$page\">Další strana -></a>";
            }
            

Pomohlo to, jen jsem musel prohodit znamínko na $left_rec > 1
visionic
Profil *
  $strana = $_GET['strana'];
  $ppr = 9; //pocet prispevku na stranu
  if (($strana=='') or ($strana<='1')) { $page = '1'; } else { $page = $strana; }
  $pagination = ($page - '1');
  $stranka = ($pagination * $ppr);
  $nextpage = ($page + '1');
  $prewpage = $pagination;
  
  $sql = "SELECT * FROM tabulka LIMIT $stranka, $ppr";
  $query = mysql_query($sql);
  $count = count($query);
  $celkem = ceil($count / $ppr);
  
  while ($databaze = mysql_fetch_assoc($querys)) {
  
  kod
  
  }
  
  if ($page>=2) { echo '<a href="?strana='.$prewpage.'">'.$prewpage.'</a>'; }
  echo '<a class="active" href="?strana='.$page.'">'.$page.'</a>';
  if ($nextpage<=$celkem) { echo '<a href="?strana='.$nextpage.'">'.$nextpage.'</a>'; }

ještě potřeba připojit spojení mysql a nastylovat a{}, a.active{}


radek 14 chyba

$querys prepsat na $query

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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