podmieneny sql prikaz v dibi

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
matto
Člen | 55
+
0
-

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
+
0
-

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)

matto
Člen | 55
+
0
-

hm asi som to zle popisal, ale za WHERE maju byt vsetky 4 parametre, respektive, len tie ktore maju nejaku hodnotu.

Tharos
Člen | 1030
+
0
-

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
+
0
-

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)

Ondřej Brejla
Člen | 746
+
0
-

Dotazy ohledně dibi? Dibi fórum

Vyki
Člen | 388
+
0
-

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
+
0
-

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ě ;-)

Cifro
Člen | 245
+
0
-

Ondřej Brejla napsal(a):
Většina lidí, kteří sledují Nette RSS, sleduje i dibi RSS.

Je to pravda. A ja ešte dodam, že na Dibi fórum je rovnaké prihlasovacie meno a heslo ako na Nette fórum, a to isté platí aj pre Texy fórum. Takže nie je potrebné sa registrovať.

Honza Marek
Člen | 1664
+
0
-

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.