Page 1 sur 1

UPDATE, ne pas mettre à jour les champs vides

Posté : 27 sept. 2020, 18:58
par ChrisCMoi62
Bonjour,
Je souhaite exécuter une requête de mise à jour via un formulaire, or, je ne souhaite pas que les champs laissés vides ne remplacent les valeurs existantes, donc ne pas mettre à jour les champs vides.
Comment puis-je faire ?remplacent

$req = $bdd->prepare("UPDATE MaTable
SET `champ1` = CASE WHEN `champ1`=' ' or `champ1` IS NULL THEN '$champ1' ELSE '$champ1' END, champ2_='$champ2'" WHERE id='$id'");

$req->bindValue('id',$_POST['id']);
$req->bindValue('champ1',$_FILES['champ1']);
$req->bindValue('champ2',$_FILES['champ2']);
$req->execute();

Quelqu'un a une idée ?
Merci de votre aide

Re: UPDATE, ne pas mettre à jour les champs vides

Posté : 07 oct. 2020, 10:25
par ChrisCMoi62
Bonjour,
Personne pour m'aider ?
quoi que je tente, si le champ fichier est vide il m'efface le contenu de mon champ dans ma base.

Re: UPDATE, ne pas mettre à jour les champs vides

Posté : 07 oct. 2020, 12:39
par @rthur
Moi je ferai mes tests en PHP pour construire ensuite la requête SQL adéquate avec uniquement les champs pertinents à mettre à jour.

Re: UPDATE, ne pas mettre à jour les champs vides

Posté : 07 oct. 2020, 13:42
par ChrisCMoi62
Oui mais même en faisant des test ça ne change rien

Re: UPDATE, ne pas mettre à jour les champs vides

Posté : 07 oct. 2020, 14:24
par @rthur
Oui mais même en faisant des test ça ne change rien
C'est que tu fais mal tes tests en PHP, et/ou que tu construis mal ta requête.

Re: UPDATE, ne pas mettre à jour les champs vides

Posté : 07 oct. 2020, 14:37
par ChrisCMoi62
Je suis assez débutant, peut être que je m'y prends mal, peux-tu me donner un exemple stp ?

Re: UPDATE, ne pas mettre à jour les champs vides

Posté : 07 oct. 2020, 17:39
par or 1
l'exemple a été donné dans la discussion doublon :
post464509.html

Re: [RESOLU] UPDATE, ne pas mettre à jour les champs vides

Posté : 08 oct. 2020, 14:32
par @rthur
Je verrouille ce sujet.
Pour la bonne lisibilité du forum, merci de ne pas poser des questions en double.