Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
smoukey
Člen
Avatar
smoukey:15.7.2014 18:31

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:15.7.2014 19:34

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:15.7.2014 19:35

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
Avatar
smoukey
Člen
Avatar
smoukey:15.7.2014 19:41

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:15.7.2014 19:42

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

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

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
15.7.2014 19:47
Avatar
smoukey
Člen
Avatar
Odpovídá na Ori I
smoukey:15.7.2014 19:52

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.