Jump to content
GSForum - Segélyvonal

oldal váltó (prev | next)


r!dd
 Share

Recommended Posts

r!dd

Sziasztok!

 

Van egy honlap, és annak van egy admin felülete. A fő oldal hírekből áll, amit adatbázisból olvas ki, illetve adminon belül oda ír.

 

Hogy lehetne archíválni a linket? És egy oldalon mondjuk 10-et megjeleníteni?

 

Előre is nagyon köszönöm a segítségeteket!

 

Üdv: ridd

Link to comment
Share on other sites

  • 4 months later...
Ducktor

Szia!

 

Ez nem is olyan nehéz, csak szöszölős. Az archiválás annyiban fog kimerülni, hogy nem írod ki a régieket.

Az SQL-ben megadod, hogy:

WHERE UNIX_TIMESTAMP(Dátum) + (60*60*24*365) > UNIX_TIMESTAMP(NOW())

Ez csak az egy éven belüli híreket listázza. És ezt kell mét megadnod:

LIMIT 0,10

A LIMIT a lekérés végére kerül.

 

Ez garantáltan az egy éven belüli hírek közül 10 hírt listáz ki. Amivel csak egy gond van, mindig ugyanazt a 10 hírt listázza ki. A 0 helyére egy változót kellene megadni, ami a 10 hírt tartalmazó oldalak közül az aktuális oldalnak a száma.

 

Úgy értem, ha 3 oldalon jeleníti meg a híreket, mert mondjuk 24 hír van egy éven belül, akkor ha a második oldalon tart, akkor ez a változó (2-1)*10 lesz. azért kell az oldal számából egyet levonni, mert az oldalak 1-gyel kezdődnek.

 

Az oldalszámot pedig érdemes egy $_GET változóban tárolni. Pl. az URL hirek.php?oldal=2 akkor a $_GET["oldal"] 2 lesz. És az oldal aljára berakhatsz két linket, az egyik az előző, amit csak akkor mutat, ha $_GET["oldal"] nagyobb 1-nél, a következőt pedig akkor, ha ($_GET["oldal"]-1)*10 kisebb, mint az összes egy éven belüli hozzászólás.

Tehát két lekérdezés kell, az egyikbe ne rakj LIMIT-et, ennek a sorainak a számát ments be egy változóba, mondjuk $ossz_egyeve .

A másikba rakd be a LIMIT-et, és azokat irasd ki, a következő link kiírását pedig ellenőrizd így:

echo (($_GET["oldal"]-1)*10 < $ossz_egyeve ? "<a href=\"hirek.php?oldal=".($_GET["oldal"]+1)."\">Következő</a>" : "" );

Edited by h.arpad
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...