Autor | Zpráva | ||
---|---|---|---|
mirio Profil |
#1 · Zasláno: 6. 3. 2007, 15:02:40
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 |
#2 · Zasláno: 6. 3. 2007, 15:17:42
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 |
#3 · Zasláno: 6. 3. 2007, 15:39:23
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 |
#4 · Zasláno: 6. 3. 2007, 15:49:37 · Upravil/a: mirio
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 |
#5 · Zasláno: 6. 3. 2007, 15:52:02
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 |
#6 · Zasláno: 6. 3. 2007, 17:08:27
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 |
#7 · Zasláno: 6. 3. 2007, 17:50:05 · Upravil/a: jarafat
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"; |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0