tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Hromadný update z fetchAssoc()

před 10 lety

Rampa
Člen | 65

Zdravím všechny.
Omlouvám se za lama dotaz, ale zatím se v dibi rozkoukávám.
Jen bych se chtěl zeptat jestli jde udělat hromadný update db když mám assoc pole hodnot.
Příklad:
je dána tabulka user – sloupce id,jmeno,plat,oddeleni.
Vyberu selectem: SELECT * FROM user WHERE oddeleni=1;
udelam $table=$result->fetchAssoc(„id“)
upravim nejaký hodnoty : $table[1][„plat“]=1000 … atd
a potreboval bych to napalit zpět do db
Zatim to řeším přes :

foreach($table as $key=>$value){
  dibi::query("UPDATE ...blabla ... WHERE id=".$key)
}

Díky .

Editoval Rampa (25. 3. 2009 13:09)

před 10 lety

Kajman
Člen | 1

To by mohlo dibi nějak vygenerovat něco jako

update `user` join
       (select 1 id, 1000 plat from dual
        union
        select 2 id, 2000 plat from dual
        union
        select 3 id, 3000 plat from dual
        union
        select 4 id, 4000 plat from dual) dibitmp on `user`.id = dibitmp.id
set     `user`.plat = dibitmp.plat

Ušetřilo by to počet dotazů.