Autor | Zpráva | ||
---|---|---|---|
HGD Profil |
#1 · Zasláno: 1. 5. 2008, 14:50:44
potřebuju na stránce vybrat záznamy podle ID, který je v URL ve tvaru: sid=1-3-4
Tech čísel tam může být různě, a spolu nijak nesouvisí, proto newim jak napsat dotaz na SELECT... ? Díky |
||
Joker Profil |
#2 · Zasláno: 1. 5. 2008, 15:14:36
HGD
Jestli to je číslo-číslo-(...)-číslo, tak by stačilo udělat na tom řetězci nahrazení: "-" -> " OR id=" a potom: "SELECT sloupce FROM tabulka WHERE id=".$sid Samozřejmě plus ještě nějaká validace té proměnné sid, narvat to tam takhle přímo je koledování si o hack :) Delší kód, ale jedodušší validace, by dalo nejdřív ten řetězec explodovat pomlčkou do pole a potom projít to pole a pro každý prvek otestovat, jestli je to číslo a kdyžtak ho připojit k dotazu. |
||
HGD Profil |
#3 · Zasláno: 1. 5. 2008, 17:49:44
a jak ověřim ty čísla? našel sem is_numeric, ale když ty čísla mam v poli... ?
|
||
Joker Profil |
#4 · Zasláno: 1. 5. 2008, 18:53:44
Musí se postupně procházet celé pole, něco jako:
$podminka = "" foreach($pole as $val){ if(intval($val) > 0) { if($podminka == "") $podminka = $podminka." id=".intval($val); else $podminka = $podminka." OR id=".intval($val); } } if($podminka != "") $sql = "SELECT sloupec FROM tabulka WHERE".$podminka; else {} // co chcete aby se udělalo když není zadáno žádné ID |
||
Kajman_ Profil * |
#5 · Zasláno: 2. 5. 2008, 06:33:12
nebo vygenerovat
where id in (1,3,4) |
||
HGD Profil |
#6 · Zasláno: 2. 5. 2008, 09:38:48
já sem to vyřešil následovně:
$where=(count($id)==1)?$id[0]:implode("' OR id='",$id); $query=mysql_query("SELECT id,name,popis,first_img FROM category_gal WHERE id='$where'"); |
||
Časová prodleva: 16 let
|
0