podmieneny sql prikaz v dibi
- matto
- Člen | 55
Ahojte,
tento krat mam otazku ohladom dibi: Potrebujem vytvorit podmieneny sql prikaz, kde je viac podmienok.
dibi::query('SELECT * FROM [table] %if', isset($param1), 'WHERE [param1]=%s', $param1);
presne ako to je v ukazke, ale este tam potrebujem pridat dalsie tri parametre pri ktorych bude tiez podmienka isset() a vobec neviem najst spravnu syntax.
Takze konecny dotaz bude selectovat podla parametrov, ktore uzivatel vyplni. Jedna sa o vyhladavanie podla 4 parametrov.
- Loric
- Člen | 14
s dibi sem zatim skoro vubec nedelal, ale tak me napadlo to udelat takto: (teda jestli sem to dobre pochopil)..
dibi::query('SELECT * FROM [table] %if', isset($p1) & isset($p2) & isset($p3), 'WHERE [param1]=%s', $param1);
možná je to úplná blbost :D
Editoval Loric (9. 7. 2010 17:45)
- Tharos
- Člen | 1030
Podobné dotazy se dobře skládají přes dibi fluent. Prostě se vytvoří základ $query = dibi::select(…) a pak se může například iterovat přes ty parametry a v případě jejich nenullové hodnoty se mohou na dotaz navěšovat restrikce. To by možná šlo, což? :)
Editoval Tharos (9. 7. 2010 19:46)
- matto
- Člen | 55
vdaka za rady, vyriesil som to nakoniec takto:
$where['show'] = 1;
if (isset($param1)){
$where['param1'] = $param1;
}
if (isset($param2)){
$where['param2'] = $param2;
}
if (isset($param3)){
$where['param3'] = $param3;
}
if (isset($param4)){
$where['param4'] = $param4;
}
return dibi::query('SELECT * FROM [table] WHERE %and', $where);
Editoval matto (9. 7. 2010 21:47)
- Vyki
- Člen | 388
Ondřej Brejla napsal(a):
Dotazy ohledně dibi? Dibi fórum
Je pravda, že to patří asi tam, ale osobně když potřebuju něco vyřešit rychle také se ptám na dibi a mysql zde.
- Ondřej Brejla
- Člen | 746
Většina lidí, kteří sledují Nette RSS, sleduje i dibi RSS. Rychlost odpovědi tedy bude v podstatě stejná a dotaz bude na správném místě ;-)
- Honza Marek
- Člen | 1664
Ondřej Brejla napsal(a):
Většina lidí, kteří sledují Nette RSS, sleduje i dibi RSS. Rychlost odpovědi tedy bude v podstatě stejná a dotaz bude na správném místě ;-)
Souhlas. Navíc já na dibi dotazy na nette fóru neodpovídám, pač je nečtu, pač si myslim, že je psal nějakej blázen.