JeuWeb - Crée ton jeu par navigateur
Mise à jour en fonction de la valeur du champ - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Mise à jour en fonction de la valeur du champ (/showthread.php?tid=231)



Mise à jour en fonction de la valeur du champ - Yoda54 - 08-03-2007

Bonjour,

Il est facile de mettre à jour un champ en fonction de sa valeur:
Code PHP :
<?php 
UPDATE ma_table SET champ1
=0 WHERE champ1=1

Mais est-il possible de mettre à jour plusieurs champs de la même ligne en fonction de leur valeur? Autrement dit, traduire ce qui suit en une seule requête:
Code PHP :
<?php 
UPDATE ma_table SET champ1
=0 WHERE champ1=1
UPDATE ma_table SET champ2
=0 WHERE champ2=1

Merci d'avance.


RE: Mise à jour en fonction de la valeur du champ - Plume - 08-03-2007

C'est une bonne question. Je n'ai jamais été confronté à la situation & ça mérite réflexion.


RE: Mise à jour en fonction de la valeur du champ - Roworll - 08-03-2007

tu as essayé un truc du genre
Code PHP :
<?php 
UPDATE ma_table SET
champ1
= CASE champ1
WHEN 1 THEN 0
ELSE champ1
END
,
champ2 = CASE champ2
WHEN 1 THEN 0
ELSE champ2
END
WHERE champ1
= 1 or champ2 = 1



RE: Mise à jour en fonction de la valeur du champ - Yoda54 - 08-03-2007

Bien vu Roworll,
Une découverte pour moi qui va me faciliter la vie à d'autres endroits en l'exploitant un peu. J'ai également testé sans la clause WHERE et cela fonctionne aussi; de façon assez logique finalement puisque la valeur du champ est testé par le CASE.
Merci beaucoup.


RE: Mise à jour en fonction de la valeur du champ - Plume - 08-03-2007

Sympathique en effet, j'avais pas encore vu cette forme. Pourtant j'en ai vu des formes avec PL/SQL ^^ M'enfin ça fait toujours ça de pris Smile Mici