dal manuale le funzioni di controllo (ad esempio IF) si possono usare solo nelle select?
io avrei necessità di usare un if in un update, qualcosa del tipo
nel caso sia uno scarico, ma se è un carico dovrei fare l'addizione invece che la sottrazione..Codice PHP:UPDATE
magazzino_oggetti
INNER JOIN magazzino_movimenti ON ( magazzino_oggetti.id = magazzino_movimenti.idOggetto )
SET magazzino_oggetti.giacenza = ( magazzino_oggetti.giacenza - magazzino_movimenti.quantita )
WHERE magazzino_movimenti.id = '$idMovimento'
il tipo di movimento lo definisco con la colonna tipo ENUM('0','1') nella tabella magazzino_movimento (0 = scarico, 1 = carico)
però, la query che ho scritto non funzionano, mi crasha proprio nel IF
Codice PHP://prova 1
UPDATE
magazzino_oggetti
INNER JOIN magazzino_movimenti ON ( magazzino_oggetti.id = magazzino_movimenti.idOggetto )
IF(magazzino_movimenti.tipo = '0', SET magazzino_oggetti.giacenza = ( magazzino_oggetti.giacenza - magazzino_movimenti.quantita ), SET magazzino_oggetti.giacenza = ( magazzino_oggetti.giacenza + magazzino_movimenti.quantita ))
WHERE magazzino_movimenti.id = '$idMovimento'
//prova 2
UPDATE
magazzino_oggetti
INNER JOIN magazzino_movimenti ON ( magazzino_oggetti.id = magazzino_movimenti.idOggetto )
SET magazzino_oggetti.giacenza = IF(magazzino_movimenti.tipo = '0', magazzino_oggetti.giacenza - magazzino_oggetti.quantita, magazzino_oggetti.giacenza + magazzino_oggetti.quantita)
WHERE magazzino_movimenti.id = '$idMovimento'
..il tutto sarebbe risolvibile con un if nel codice php, ma vorrei farlo nella query...

					
					
					
						
  Rispondi quotando
						
 
						