Oznámení
Omlouváme se, provoz fóra byl ukončen
WHERE %or (int or array ?)
Upozornění: Tohle vlákno je hodně staré.
před 9 lety
- tito100
- Člen | 2
dobrý deň
potreboval by som poradiť. keď mam v metóde dibi::query kde mam značku %or
, a predávam mu array, alebo integer.
ked to spravím týmto spôsobom, tak to nefunguje :
// id : int , array
public static function changeDate($id ,$columm='showed_from')
{
$banner = dibi::query('UPDATE `banners` SET %sql ','['.$columm.']',' = CURDATE()
WHERE `id`=%or ', $id , ' LIMIT %i',(1),";");
return ($banner);
}
jedine sa mi to podarilo spraviť týmto spôsobom :
public static function changeDate($id ,$columm='showed_from')
{
$banner = dibi::query('UPDATE `banners` SET %sql ','['.$columm.']',' = CURDATE()
%if ', (is_array($id) && count($id)),' WHERE %or ', (is_array($id)?$id:array()) , '%else WHERE `id`=%i',$id,'%end LIMIT %i',(is_array($id)?count($id):1),";");
return ($banner);
}
čo sa mi však nezdá, že by niečo také ako dibi na toto nemyslelo. skôr
je to prípad, že si to len ja neviem previesť do dibi syntaxe.
môžete mi prosím poradiť, ako to napísať lepšie ?
vopred ďakujem
Editoval tito100 (25. 4. 2010 13:49)
před 9 lety
- phx
- Člen | 652
Take by slo pouzit SQL operator IN. id IN (1, 2, 3)
před 9 lety
- tito100
- Člen | 2
to ano. ale to by nefungovalo v pripade že chcem porovnavat podla viacej stlpcou