Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
discount week 30 halloween
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
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
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.