Php-ban hogyan kell azt megoldani, hogy bizonyos számú adatkiírás után (pl.10) az adatok alatt linkek jelennek meg, amik csoportokra bontják ezeket? (pl.1-10 11-20 stb)
Legegyszerűbb:
Tudod, hogy hány adat van. Ebből azt ki tudod számítani, hogy hány oldal kell neki. (pl. 11 adatnál 2 oldal, stb.)
Ha már tudod, hogy hány oldal kell, mindegyik oldalnak adhatsz külön számot. (1,2,3... :P)
Megjelenítéshez pedig megjeleníted az adatokat: adatok = ez egy intervallum! ( (oldalszama-1)*10 +1, minimum( összes adat száma, oldalszáma*10) )
...valami ilyesmi kell neked :P
Szvsz, egyszerű megoldás az, ha a kiírandó adatokat adatbázisban tárolod. Az egyik mezőben feltétlenül sorszámokat tárolj, akár auto increment formában (így automatikusan fog generálódni)!
Lekéred az adatbázisban levő adatokat mindaddig, amíg a sorszám utolsó karaktere 0 nem lesz.
Tömbben eltárolod a lekért adatokat és kiíratod olyan formában és oda, ahova szeretnéd.
Az utolsó rekord sorszámát feltétlenül el kell tárolni egy változóban, hogy a következő lekérdezésben már csak tárolt sorszám utáni sorszámokkal rendelkező rekordokat tudd lekérni.
A oldalszámokhoz rendelt linkeket pedig dinamikusan is tudod generálni, az adatbázisban tárolt adatok segítségével, így elég lesz egyetlen php feldolgozó scriptet készítened.
Jó az adatbázisos megoldás, csak kicsit másképp kell csinálni.
Az auto increment sorszámozás arra lesz jó, hogy megadja a sorrendet. Így ha törölsz, az sem gond, hisz a 2 után jön a 8 is.
Szóval:
Lekérdezed az összes listázandó elemet/mysql_num_rows()/. Ebből megtudod, mennyi van belőlük, megcsinálod az oldalszámokat a már említett módokon.
Amikor valaki egy oldalszámra kattint, akkor már csak célzottan kérdezel le:
tol=oldalszám*oldalankénti darab;
SELECT * FROM táblanév WHERE ha van feltétel LIMIT tol, oldalankénti darab ORDER BY sorszám
Egészen konkrét példa:
SELECT * FROM product WHERE visible=1 LIMIT 1,10 ORDER BY id
Remélem segítettem.
Viasz
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!