ugrás a tartalomhoz

mysql_query

eaposztrof · 2007. Jún. 22. (P), 15.56
üdv.
$catrow = @mysql_fetch_assoc(mysql_query("select c.id as cid, s.id as sid from dir_cat c left join dir_subcat s on c.id = s.id_cat where c.name='$cname' and s.name='$sname'")) or exit;
valaki elmagyarazna nekem magyarul h ez a sor mit is csinal?

tablatartalmak:
dir_cat (id,name)
dir_subcat (id,id_cat,name,show_on_main)

kosz.
 
1

logika

Marcell · 2007. Jún. 22. (P), 17.14
Nézd már, megtanultál köszönni? És még kódszínező is van, erre nem lehet nem válaszolni! :D

Egy asszociatív tömbbe gyűjti egy MySQL lekérdezés eredményét (a @ karakter miatt hiba esetén nem küld hibaüzenetet), az SQL pedig a következő:
SELECT -- lekérdezés lesz
    c.id AS cid, s.id AS sid -- kiválasztja a 2 `id` oszlopot a két táblából, megadja az asszociatív tömbbeli a nevüket /alias/ vagyis  cid, sid

  FROM dir_cat c -- a dir_cat táblából kérdez le (aminek a rövídítése /lokális neve/ mostantól c)
    LEFT JOIN dir_subcat s ON c.id = s.id_cat -- csatlakoztatja a dir_subcat táblát (aminek a rövidítése mostantól s) a megadott feltétel alapján, ha van egyezés lesz sid, ha nincs, NULL lesz sid értéke

  WHERE c.name = '$cname' AND s.name = '$sname'" -- az eredményhalmazt szűri 2 előzőleg beállított változó alapján, tehát ahol a két egyenlőség egyidejűleg fennt áll (AND kapcsolat)
Csak remélni tudom, hogy a $cname és $sname változók megfelelően előkészítettek SQL injekció ellen.
2

FROM dir_cat c

eaposztrof · 2007. Jún. 22. (P), 17.46
koszi, a rovidites zavart be, mas minden tiszta..

kikerem magamnak! eddig is hasznaltam a szinkodokat :P