Hogyan kell hivatkozással egy adatbázis lekérdezést megírni?
Arra gondolok, hogy pl van egy listaoldal
példa kedvéért:
név, életkor, megjegyzés.
Egy táblázatban előre meghatározva ezt kilistázom mondjuk név szerint abc sorendben.
És a listázásban kellene , hogy "életkor"-ra kattintva újratölti az oldalt és életkor szerint rakja sorba.
Azthiszem GET el kell átadni ilyen lekérdezéseket (legalábbis más weboldalakon így láttam a hivatkozásokat, hasonló listákban).
Mivel elég kezdő vagyok PHP ben, nem tudom, hogy kellene összeállítani egy ilyen lekérdezést.
Remélem érthetően tettem fel a kérdésemet, ha nem akkor kiegészítem ha kéritek.
Így van, akár GET-ben is át lehet adni ilyen infókat a PHP-nak, amit a MySQL-ben fel tudsz használni.
Az adott SELECT lekérdezésed ORDER BY részét kell kiegészítened úgy, hogy "SELECT ... FROM ... WHERE ... ORDER BY ".$_GET[valtozo].";"
A valtozó értéke pedig (ergó amit átadsz a linkkel) az a mező neve legyen, ami alapján ki van listázva.
pl.: <a href='oldalam.php?valtozo=ELETKOR'>link</a>
Így az ELETKOR értéket fogja behelyettesíteni a mysql query-be és így fog kinézni:
SELECT ... FROM ... WHERE ... ORDER BY ELETKOR;
Tehát az ELETKOR nevű mező szerint fogja sorbarendezni...
Ennyi.
Köszönöm a segítséget.
Tudtam, hogy nem lehet bonyolult.
Csak ebből kifolyólag egy hibát még orvosolni kellene, mégpedig ha lekérdezés ORDER BY ".$_GET[valtozo]." értéket adom meg, és a menüúgy hivtakozik az oldalra, hogy
lista.php és így nem kerül Get átadásra, tehát a változó nem kap értéket. és nem listáz semmit, csak hibaüzenetet ir.
állítsak be a menüben egy előregenerált GET linket, vagy van valamilyen megoldás arra, hogy ha nem kap GET el változót akkor azt figyelmen kívül hagyja és listáz alapértelmezetten.
remélem nem beszélek hülyeséget..
azt hozzátenném, hogy egy az egyben beilleszteni a $_GET['valtozo']-t nem túl biztonságos, legalábbis a későbbiekre nézve, ha komolyabb oldalakat akarsz gyártani! És persze, lehet alapértelmezettet adni, például így (szintén a biztonsági szempontokat figyelmen kívül hagyva):
ORDER BY " . (!empty($_GET['valtozo'])?$_GET['valtozo']:'name') . ";"
ez az implicit if-else szerkezet, vagy mi a neve, általánosabban:
(feltétel)?igaz:nem igaz, például: echo ($szam>0?'pozitív szám':'negatív szám')
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!