Galéria: előző, következő képek
Sziasztok!
Egy galériát szeretnék hegeszteni (PHP4.1+, <5; MySQL 3.23), ami az alábbi alapelveket követi.
Két tábla, egyikben képcsoportok, másikban képek. Egy képcsoportot egy "tárlatként" jelenít meg a rendszer.
Miként oldjam meg, hogy a megjelenő képnél le lehessen kérdezni az előző, illetve következő képet is? (Előző kép - Következő kép kiválasztás)
Gondoltam arra, hogy a képek táblájából az épp lekért kép azonosítójánál eggyel kisebb, illetve nagyobb képet kérem le, de nyilván törlés után ez problémát okoz.
Az is eszembe jutott, hogy egy id-tartományt kérek le, aztán megnézem, van-e előző, következő id...de sem ez, sem a több lekérés nem túl erőforrás-kímélő.
A megoldás során lehetőleg kerülném a képek átnevezését, s - kizárólag elvi megfontolásból, nem lesz túl nagy terhelése egy családi albumnak - jó lenne, ha minél gyorsabb megoldást tudnék létrehozni.
Tudnátok akár elvi ötleteket, akár valami leírást adni e témában? Pár scriptet már átnéztem, de a törlés problémájával nem foglalkoznak; komolyabb CMS-ek átböngészésére pedig sajnos nincs időm.
Előre is köszönöm!
■ Egy galériát szeretnék hegeszteni (PHP4.1+, <5; MySQL 3.23), ami az alábbi alapelveket követi.
Két tábla, egyikben képcsoportok, másikban képek. Egy képcsoportot egy "tárlatként" jelenít meg a rendszer.
Miként oldjam meg, hogy a megjelenő képnél le lehessen kérdezni az előző, illetve következő képet is? (Előző kép - Következő kép kiválasztás)
Gondoltam arra, hogy a képek táblájából az épp lekért kép azonosítójánál eggyel kisebb, illetve nagyobb képet kérem le, de nyilván törlés után ez problémát okoz.
Az is eszembe jutott, hogy egy id-tartományt kérek le, aztán megnézem, van-e előző, következő id...de sem ez, sem a több lekérés nem túl erőforrás-kímélő.
A megoldás során lehetőleg kerülném a képek átnevezését, s - kizárólag elvi megfontolásból, nem lesz túl nagy terhelése egy családi albumnak - jó lenne, ha minél gyorsabb megoldást tudnék létrehozni.
Tudnátok akár elvi ötleteket, akár valami leírást adni e témában? Pár scriptet már átnéztem, de a törlés problémájával nem foglalkoznak; komolyabb CMS-ek átböngészésére pedig sajnos nincs időm.
Előre is köszönöm!
sql!?
FROM kepek
WHERE csoport = 'jelenlegi_csoport'
AND id < 'jelenlegi_kep_id-je'
ORDER BY ami_szerint_rendezni_akarod DESC
LIMIT 1
Ha nem hoz egy rekordot sem, akkor a lista elején vagy, egyébként mindig a listában az előzőt hozza.
A következő kép ugyanaz, csak a relációjel fordítva és nincs DESC
Nadi
Egy lekérés?
Esetleg egy UNION a querybe? Mit gondoltok róla? Vagy nem érdemes erőltetni az egy lekérést, "annyit nem számít"?
Mindettől függetlenül kösz még egyszer, Nadi!
UNION
Ebben az esetben a UNION-t nem tartom jó megoldásnak, mert ha két SELECT-et összekapcsolva csak egy rekordot kapsz eredményül, akkor nem fogod tudni, hogy az az előző, vagy pedig a következő képet jelenti.
Elképzelhető, hogy további bűvészkedéssel meg lehetne oldalni egyetlen SQL utasítással, de szerintem nem éri meg a fáradságot, arról nem is beszélve, hogy nehezebben érthető kód lesz a végeredmény.
Nadi
Meggyőztél