Autor Zpráva
mirio
Profil
Ahoj,

chtěl bych si napsat funkci, která mi pod článkem zobrazí odkazy "<< předchozí článek - následující článek >>", pomocí kterých bude moct čtenář mého weblogu plynule přecházet mezi jednotlivými články, ale tak nějak nevím, od čeho se odpíchnout.

Pomůžete někdo, prosím?

Díky.

Mirio
Joker
Profil
Tak buď si už při čtení článku si načíst IDčka okolních článků a potom prostě udělat:
<a href="zobraz.php?clanek=<?php echo($id_predchozi) ?>">Předchozí článek</a> <a href="zobraz.php?clanek=<?php echo($id_nasledujici) ?>">Následující článek</a>

anebo by šlo třeba
<a href="zobraz.php?prev=<?php echo($id_clanku); ?>">Předchozí článek</a> <a href="zobraz.php?next=<?php echo($id_clanku); ?>">Následující článek</a>

a zobraz.php by dělal
- pokud je definováno "prev", načte se článek před daným ID, pokud "next", načte se článek za daným ID. Dotaz by třeba pro "next" mohl vypadat: SELECT ... FROM clanky WHERE id > $next ORDER BY ID ASC LIMIT 1
one_k
Profil
mirio
Joker
stejne poduk budes chtit mit zobrazeny text "nasledujici clanek" tak musis vedet ze takovy clanek vubec existuje a na to abys to vedel tak o nem neco musis znat takze budes vedet tak jako tak id toho dalsiho clanku. Takze spis ta prvni moznost je spravne..
mirio
Profil
Tak buď si už při čtení článku si načíst IDčka okolních článků a potom prostě udělat:
<a href="zobraz.php?clanek=<?php echo($id_predchozi) ?>">Předchozí článek</a> <a href="zobraz.php?clanek=<?php echo($id_nasledujici) ?>">Následující článek</a>


Tady nad touhle variantou jsem taky uvažoval, jenže si právě nejsem jistý tím, jak načíst a ověřit předchozí a následující id.

třeba něco jako:
$prev_id=$id-1
$next_id=$id+1

$s = mysql_query("SELECT idclanku FROM clanky");

$dotaz = mysql_num_rows(mysql_query("SELECT 1 FROM clanky WHERE idclanku LIKE '$prev_id' LIMIT 1"));
if ($dotaz!=0) echo("odkaz na předchozí článek");
else "";

$dotaz1 = mysql_num_rows(mysql_query("SELECT 1 FROM clanky WHERE idclanku LIKE '$next_id' LIMIT 1"));
if ($dotaz1!=0) echo("odkaz na následující článek");
else "";


Společně s tímhle se snažím vyřešit i mod_rewrite a už jsem z toho blbej.
mirio
Profil
Přesně jak píše one_k, musím si ověřit jestli ty id opravdu existujou a jsem už úplně vygumovaný. Mohlo by to takhle fungovat? Na server se dostanu až večer, tak zatím nemohu ověřit - pouze teoreticky.
Joker
Profil
mirio
třeba něco jako:
$prev_id=$id-1
$next_id=$id+1

Takhle ne.
Když už, tak dělat:
další: SELECT ... FROM clanky WHERE id > $id ORDER BY id ASC LIMIT 1
předchozí: SELECT ... FROM clanky WHERE id < $id ORDER BY id DESC LIMIT 1
jarafat
Profil
První článek: $limit = 0;

A pak by to vypadalo takhle:

$prev = $limit - 1;
$next = $limit +1;

$sql = "SELECT * FROM tabulka ORDER BY id LIMIT $limit,1";
Toto téma je uzamčeno. Odpověď nelze zaslat.