Diskuze: Stránkování

PHP PHP Stránkování American English version English version

Avatar
smoukey
Člen
Avatar
smoukey:

Zdravím,

hrůza snad pro každého... Stránkování.

Mám na svém webu stránkování, funguje na 90%. Těch zbylých 10% je takových, že pokud se při stránkování vracím na první stránku nebo když jsem na stránce hlavní (tudíž 0), tak mi to nezobrazuje první přístěvěk (respektivně poslední... Je to vypisované z databáze, řazené podle ID sestupně).

Kód:

  • Dotaz
$clanky=mysql_query("SELECT * FROM clanky ORDER BY id DESC LIMIT ".(isset($_GET['stranka'])?($_GET['stranka']*3)+1:"0").",3");

poté vše cyklem vypíši, jak potřebuji, to je myslím nepodstatné, pokud ano, napište přidám to sem.

Je to výplod mé fantazie, ale funguje to, až na ten nejnovější příspěvek, který se mi tam nezobrazí... :(

$pocet_zaznamu=mysql_query("SELECT COUNT(ID) AS pocet FROM clanky");
  $kolik=mysql_fetch_assoc($pocet_zaznamu);
  $celkem=$kolik['pocet'];
  $stranek=$celkem/3;
  if ($_GET['stranka']>0){
     echo '&nbsp;<a href="index.php?page=domu&stranka=0">První </a>&nbsp;';
     echo '<a href="index.php?page=domu&stranka='.($_GET['stranka']-1).'"> Předchozí </a>&nbsp;';
  }
  for ($i=0; $i<$stranek; $i++){
    if ($_GET['stranka']==$i){echo ($i+1).' ';}
    else
    echo '<a href="index.php?page=domu&stranka='.$i.'">'.($i+1).'</a>&nbsp;';
  }
  if ($_GET['stranka']<($stranek-1)){
    echo '&nbsp;<a href="index.php?page=domu&stranka='.($_GET['stranka']+1).'"> Další</a>';
    echo '&nbsp;<a href="index.php?page=domu&stranka='.($stranek-1).'">Poslední </a>';
  }
 
Odpovědět 15.7.2014 18:31
Avatar
smoukey
Člen
Avatar
smoukey:

EDIT:

Pokud vpyni vypisování varování (lokální pc) nebo hodím na server, tka že funguje, když na odkaz, kterým chci jít na začátek (první stránka) tak to směruji takto:

<a href="index.php?page=domu">První </a>

Ale kdybych se vracel po číslech a kliknul na jedna, tak v url budu mít: &stranka=0 a to už se mi nezobrazí první záznam.

 
Nahoru Odpovědět 15.7.2014 19:34
Avatar
Odpovídá na smoukey
Michal Žůrek (misaz):

ok, o zastaralých databázových ovladačích tě tentokrát už přesvědčovat nebudu. Ale k tvému problému. Celé je to způsobené tím, že přičítáš +1, odstraň to +1 a bude ti to fungovat.

$clanky=mysql_query("SELECT * FROM clanky ORDER BY id DESC LIMIT ".(isset($_GET['stranka'])?($_GET['stranka']*3):"0").",3");
Nahoru Odpovědět 15.7.2014 19:35
Nesnáším {}, proto se jim vyhýbám.
Avatar
smoukey
Člen
Avatar
smoukey:

O tom zastaralém ovladači vím, snažil jsem se pochopit PDO avšak neúspěšně. Podařil osem i připojit k db a i vypsat data, ale přijde mi to složité a sám tomu nerozumím a nechápu to. :(

Editováno 15.7.2014 19:42
 
Nahoru Odpovědět 15.7.2014 19:41
Avatar
smoukey
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
smoukey:

Jinak děkuji za odpověď. Vše nyní funguje jak má. :)

 
Nahoru Odpovědět 15.7.2014 19:42
Avatar
Ori
Člen
Avatar
Odpovídá na smoukey
Ori:

Ak chceš pozri si http://devbook.sixfeetunder.cz/pagination/ tuto knižnicu na stránkovanie, nezahrňuje síce SQL ale rozhodne tu uľahčí generovanie odkazov. A tým pádom na túto hrôzu, čo máš hore, môžeš zabudnúť.

 
Nahoru Odpovědět  +1 15.7.2014 19:47
Avatar
smoukey
Člen
Avatar
Odpovídá na Ori
smoukey:

Když to napíšu špatně.

Je to hrůza, to ano. Ale funguje to. :D

 
Nahoru Odpovědět 15.7.2014 19:52
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.