Problème WHERE sql ignoré
Résolu
juliendefully
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
juliendefully Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
juliendefully Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un problème avec une requête SQL que j'ai préparé, tout fonctionne sauf que le WHERE n'est pas pris en compte, donc toutes les entrées sont modifiées.
Je mets mon code ci-dessous, si quelqu'un voit qu'elle est l'erreur.
Merci
J'ai un problème avec une requête SQL que j'ai préparé, tout fonctionne sauf que le WHERE n'est pas pris en compte, donc toutes les entrées sont modifiées.
Je mets mon code ci-dessous, si quelqu'un voit qu'elle est l'erreur.
Merci
<? $bdd = new PDO(`mysql:host=XXXX;dbname=XXXX;charset=utf8', `XXXX', `XXXX'); $req = $bdd->prepare('UPDATE clients SET nom = :nom, prenom = :prenom; adresse = :adresse, ville = :ville, npa = :npa, telephone1 = :telephone, email = :email, civilite = :civilite, remarque = :remarque, tension = :tension, douleur = :douleur, enceinte = :enceinte, allergie = :allergie, maladie = :maladie, operation = :operation WHERE id_client = :idclient'); $req->execute(array( 'idclient' => $_POST['aidclient'], 'civilite' => $_POST['acivilite'], 'nom' => $_POST['anom'], 'prenom' => $_POST['aprenom'], 'telephone' => $_POST['atelephone'], 'email' => $_POST['aemail'], 'adresse' => $_POST['aadresse'], 'ville' => $_POST['aville'], 'npa' => $_POST['anpa'], 'tension' => $_POST['atension'], 'douleur' => $_POST['adouleur'], 'enceinte' => $_POST['aenceinte'], 'allergie' => $_POST['aallergie'], 'maladie' => $_POST['amaladie'], 'operation' => $_POST['aoperation'], 'remarque' => $_POST['aremarque'] )); //Redirection ?>
A voir également:
- Problème WHERE sql ignoré
- Where is it - Télécharger - Gestion de fichiers
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Ignoré de ils m'ont ajouté snap - Forum Snapchat
- Votre message a été lu et ignoré avec succès - Forum Facebook Messenger
1 réponse
Bonjour,
1 - Utilises les balises PHP complètes ( <?php au lieu de juste <? )
2 - récupères le contenu de ton $_POST dans des variables ( AVANT de les utiliser ! )
3 - Sépare les éléments de ta "requête"
d'un côté le sql, d'un autre l'array de tes variables... et enfin.. l'appelle à la fonction qui l'execute.
Bref... ça devrait donner un code du genre :
Au passage... tu avais un ";" qui trainait dans ta requête.....
C'est pour ça qu'il est bien d'y faire des retours à la ligne..histoire qu'elle soit plus lisible !
1 - Utilises les balises PHP complètes ( <?php au lieu de juste <? )
2 - récupères le contenu de ton $_POST dans des variables ( AVANT de les utiliser ! )
3 - Sépare les éléments de ta "requête"
d'un côté le sql, d'un autre l'array de tes variables... et enfin.. l'appelle à la fonction qui l'execute.
Bref... ça devrait donner un code du genre :
<?php $bdd = new PDO('mysql:host=XXXX;dbname=XXXX;charset=utf8', 'XXXX', 'XXXX'); // Récupération propre des variables $idclient => isset($_POST['aidclient'])? $_POST['aidclient']:''; $civilite => isset($_POST['acivilite'])? $_POST['acivilite'] : ''; $nom => isset($_POST['anom']) ? $_POST['anom'] : ''; $prenom => isset($_POST['aprenom']) ? $_POST['aprenom'] : ''; $telephone => isset($_POST['atelephone']) ? $_POST['atelephone'] : ''; // etc... je te laisse faire les autres. // requête $sql = "UPDATE clients SET nom = :nom , prenom = :prenom , adresse = :adresse , ville = :ville , npa = :npa , telephone1 = :telephone , email = :email , civilite = :civilite , remarque = :remarque , tension = :tension , douleur = :douleur , enceinte = :enceinte , allergie = :allergie , maladie = :maladie , operation = :operation WHERE id_client = :idclient"; // Array contenant les datas pour la requête $array_datas = array( 'idclient' => $aidclient, 'civilite' => $acivilite, 'nom' => $anom, 'prenom' => $aprenom, 'telephone' => $atelephone, 'email' => $aemail, 'adresse' => $aadresse, 'ville' => $aville, 'npa' => $anpa, 'tension' => $atension, 'douleur' => $adouleur, 'enceinte' => $aenceinte, 'allergie' => $aallergie, 'maladie' => $amaladie, 'operation' => $aoperation, 'remarque' => $aremarque ); try{ //exécution de la requete $req = $bdd->prepare($sql); $req->execute($array_datas); }catch(Exception $e) { // en cas de souci dans l'execution de la requete echo $e->getMessage(); print_r($array_datas); }
Au passage... tu avais un ";" qui trainait dans ta requête.....
C'est pour ça qu'il est bien d'y faire des retours à la ligne..histoire qu'elle soit plus lisible !
juliendefully
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
13
Merci beaucoup, j'ai réussi la