Renvoyer NULL avec UPDATE
Résolu/Fermé
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
-
21 nov. 2017 à 12:21
isa-- Messages postés 77 Date d'inscription lundi 16 septembre 2013 Statut Membre Dernière intervention 11 mars 2020 - 22 nov. 2017 à 18:18
isa-- Messages postés 77 Date d'inscription lundi 16 septembre 2013 Statut Membre Dernière intervention 11 mars 2020 - 22 nov. 2017 à 18:18
A voir également:
- Renvoyer NULL avec UPDATE
- Windows update 0x80070643 - Accueil - Windows
- Windows update bloqué - Guide
- Asus live update - Télécharger - Utilitaires
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
7 réponses
yg_be
Messages postés
23327
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 novembre 2024
Ambassadeur
1 551
21 nov. 2017 à 12:36
21 nov. 2017 à 12:36
bonjour, montre nous le code qui prepare et fait l'UPDATE.
tu dois obtenir:
tu dois obtenir:
UPDATE retours SET action = NULL
yg_be
Messages postés
23327
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 novembre 2024
Ambassadeur
1 551
21 nov. 2017 à 12:34
21 nov. 2017 à 12:34
bonjour, montre-nous le code qui prépare et fait l'UPDATE.
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
1
21 nov. 2017 à 12:57
21 nov. 2017 à 12:57
Merci de ta réponse
Le code pour préparer est dans mon premier message.
Voici celui de la requête :
Le code pour préparer est dans mon premier message.
Voici celui de la requête :
$req="UPDATE `retours` SET `lr` = '$lr', `cial` = '$cial', `date` = '$date1', `client` = '$client', `dpt` = '$dpt', "
."`ref` = '$ref',`nolot` = '$nolot',`qte` = '$qte',`longu` = '$longu',`larg` = '$larg',`motif` = '$motif', "
." `action` = '$action',`matiere` = '$matiere',`msno` = '$msno',`traite` = '$traite',`nofacture` = '$nofacture',`erreur` = '$erreur',`nomerreur` = '$nomerreur', "
."`obs` = '$obs',`reprise` = '$reprise',`cloture` = '$cloture',`coutmatiere` = '$coutmatiere',`coutport` = '$coutport', "
."`montantavoir` = '$montantavoir',`noavoir` = '$noavoir',`nodossier` = '$nodossier', `dateavoir` = '$dateavoir',`montantprejudice` = '$montantprejudice',"
." `montantmatiere` = '$montantmatiere',`montantfourn` = '$montantfourn',`saisie` = '$saisie'"
." WHERE `id` = '$get'";
yg_be
Messages postés
23327
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 novembre 2024
1 551
21 nov. 2017 à 15:00
21 nov. 2017 à 15:00
et en retirant les apostrophes autour de $action dans le code de la requête?
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
209
21 nov. 2017 à 13:02
21 nov. 2017 à 13:02
La déclaration de la table accepte le Null pour ce champ ???
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
1
21 nov. 2017 à 14:04
21 nov. 2017 à 14:04
Oui tout à fait. La valeur par défaut est NULL
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
209
Modifié le 21 nov. 2017 à 14:44
Modifié le 21 nov. 2017 à 14:44
essaie peut être avec la fonction isnull
peut être trop pressé 'NULL' est différent de NULL
enlève les '' ...
peut être trop pressé 'NULL' est différent de NULL
enlève les '' ...
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
1
>
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
21 nov. 2017 à 15:48
21 nov. 2017 à 15:48
Si j'enlève les ' ', ma requète ne fonctionne pas lorsque $_POST["action"] n'est pas vide...
yg_be
Messages postés
23327
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 novembre 2024
1 551
>
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
21 nov. 2017 à 16:13
21 nov. 2017 à 16:13
si tu enlèves les '', ta requete fonctionne-t-elle quand $_POST["action"] est vide?
"ma requête ne fonctionne pas": message d'erreur, résultat inattendu?
peux-tu partager ce que contiennent $action et $req quand $_POST["action"] n'est pas vide?
"ma requête ne fonctionne pas": message d'erreur, résultat inattendu?
peux-tu partager ce que contiennent $action et $req quand $_POST["action"] n'est pas vide?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yg_be
Messages postés
23327
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 novembre 2024
Ambassadeur
1 551
21 nov. 2017 à 15:18
21 nov. 2017 à 15:18
tu peux tester avec cet exemple pour comprendre:
$action1='NULL'; $action2="'"."action"."'"; echo "<br>"; echo $action1; echo "<br>"; echo $action2; echo "<br>"; echo "'$action1'"; echo "<br>"; echo "'$action2'"; echo "<br>";
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
1
21 nov. 2017 à 15:58
21 nov. 2017 à 15:58
Je reprends un peu ma demande pour que ce soit plus clair :
Requete : UPDATE `retours` SET `action` = '$action'
puis
Si $action est vide, je veux que le champ action de ma bdd soit NULL et non pas vide.
Ce qui n'est pas le cas actuellement car ce que je génère est :
à la place de
La question est donc comment faire dégager les '' de ma requête si $action est vide ?
Je pense que le problème vient de ma fonction mysql_real_escape_string($action) que je ne maitrise pas.
C'est là que j'ai besoin d'aide
Merci d'avance
Requete : UPDATE `retours` SET `action` = '$action'
Je récupère $action par $action=$_POST["action"]
puis
$action = $action == '' ? 'NULL':"'".mysql_real_escape_string($action)."'";
Si $action est vide, je veux que le champ action de ma bdd soit NULL et non pas vide.
Ce qui n'est pas le cas actuellement car ce que je génère est :
UPDATE retours SET action = 'NULL'
à la place de
UPDATE retours SET action = NULL
La question est donc comment faire dégager les '' de ma requête si $action est vide ?
Je pense que le problème vient de ma fonction mysql_real_escape_string($action) que je ne maitrise pas.
C'est là que j'ai besoin d'aide
Merci d'avance
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
21 nov. 2017 à 16:12
21 nov. 2017 à 16:12
$action = $action == '' ? 'NULL' : "'" . mysql_real_escape_string($action) . "'"; $req = 'UPDATE `retours` SET `action` = ' . $action;
Si $action vaut 'toto', $req vaudra :
UPDATE `retours` SET `action` = 'toto'
Si $action est une chaine vide, $req vaudra :
UPDATE `retours` SET `action` = NULL
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
1
>
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
21 nov. 2017 à 16:57
21 nov. 2017 à 16:57
Je pense que là on tient le bon bout...
Je teste et je dis si ça marche
Merci mille fois
Je teste et je dis si ça marche
Merci mille fois
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
1
>
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
21 nov. 2017 à 17:15
21 nov. 2017 à 17:15
Ca ne marche pas avec
Ca marche à priori avec :
Cela te semble - t il cohérent ?
$req = 'UPDATE `retours` SET `action` = ' . $action;
Ca marche à priori avec :
$req = 'UPDATE `retours` SET `action` = $action;
Cela te semble - t il cohérent ?
jordane45
Messages postés
38288
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2024
4 703
21 nov. 2017 à 17:46
21 nov. 2017 à 17:46
Bonjour,
Petite remarque en passant .....
Dans tes précédents messages... tu utilisais mysqli_* ....
Alors comment se fait-il que là .. tu aies des instruction mysql_* qui trainent ??
Petite remarque en passant .....
Dans tes précédents messages... tu utilisais mysqli_* ....
Alors comment se fait-il que là .. tu aies des instruction mysql_* qui trainent ??
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
1
>
jordane45
Messages postés
38288
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2024
21 nov. 2017 à 17:52
21 nov. 2017 à 17:52
Parce que je n'ai déjà pas compris grand chose à la fonction mysql_real_escape_string, alors la fonction mysqli_real_escape_string encore moins
Les explications du manuel php sont obscures pour moi
Les explications du manuel php sont obscures pour moi
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
22 nov. 2017 à 09:12
22 nov. 2017 à 09:12
Salut,
Un exemple simple auquel devrait ressembler ton code :
Bonne journée,
Un exemple simple auquel devrait ressembler ton code :
<?php if (isset($_POST['action'])) { $action = empty($_POST['action']) ? 'NULL' : "'" . $_POST['action'] . "'"; //$action = empty($_POST['action']) ? 'NULL' : "'" . mysqli_real_escape_string($_POST['action']) . "'"; $req = 'UPDATE `retours` SET `action` = ' . $action; var_dump($req); } ?> <form method="post" action=""> <input type="text" name="action"> <input type="submit"> </form>
Bonne journée,
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
1
22 nov. 2017 à 18:18
22 nov. 2017 à 18:18
Eh ben voilà... Simple et concis, ça marche...
Merci mille fois
Bonne soirée
Merci mille fois
Bonne soirée
21 nov. 2017 à 14:04