Problème de requête UPDATE INNER JOIN SET WHERE
Résolu
reverb94
Messages postés
106
Date d'inscription
Statut
Membre
Dernière intervention
-
reverb94 Messages postés 106 Date d'inscription Statut Membre Dernière intervention -
reverb94 Messages postés 106 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous et à toutes,
Je suis confronté à un problème que je n'arrive pas à résoudre :/,
J'ai précédemment créer 3 tables pour stocker les infos des membres de mon site,
la premiere contient toute les infos obligatoire lors de l'inscription
la 2 eme des infos secondaire du membre
et la 3eme les réseaux sociaux du membre
lors de l'inscription l'id du membre s'insère dans ces 3 tables.
Par la suite j'ai rajouter une page modification du profil en ajoutant simplement une requête de modification pour les 3 tables qui sont regroupé en 1 requête UPDATE INNER JOIN,
mais ma requête n'a pas l'air de fonctionner :/ pourtant aucune erreur ne s'affiche et la composition de la requête semble être bonne :/
et voici les requêtes avec le formulaire pour modifier :
Merci pour votre aide et votre attention.
Je suis confronté à un problème que je n'arrive pas à résoudre :/,
J'ai précédemment créer 3 tables pour stocker les infos des membres de mon site,
la premiere contient toute les infos obligatoire lors de l'inscription
la 2 eme des infos secondaire du membre
et la 3eme les réseaux sociaux du membre
lors de l'inscription l'id du membre s'insère dans ces 3 tables.
Par la suite j'ai rajouter une page modification du profil en ajoutant simplement une requête de modification pour les 3 tables qui sont regroupé en 1 requête UPDATE INNER JOIN,
mais ma requête n'a pas l'air de fonctionner :/ pourtant aucune erreur ne s'affiche et la composition de la requête semble être bonne :/
$id=($_SESSION['membre_id']); $reqmod=$bdd->prepare('UPDATE membres m INNER JOIN infos_membre i ON i.i_membre_id=m.membre_id INNER JOIN rs_membre r ON r.rs_membre_id=m.membre_id SET m.membre_mdp=:mdp, m.membre_mail=:mail, i.membre_nom=:nom, i.membre_prenom=:prenom, i.membre_naissance=:naissance, i.membre_siteweb=:siteweb, i.membre_localisation=:localisation, i.membre_signature=:signature, i.membre_biographie=:biographie, i.membre_profession=:profession, r.membre_facebook=:facebook, r.membre_twitter=:twitter, r.membre_tumblr=:tumblr, r.membre_flickr=:flickr, r.membre_fotolog=:fotolog, r.membre_pinterest=:pinterest, r.membre_googleplus=:googleplus WHERE m.membre_id=:id'); $reqmod->bindValue(':mdp',$pass,PDO::PARAM_STR); $reqmod->bindValue(':mail',$email,PDO::PARAM_STR); $reqmod->bindValue(':nom',$nom,PDO::PARAM_STR); $reqmod->bindValue(':prenom',$prenom,PDO::PARAM_STR); $reqmod->bindValue(':naissance',$naissance,PDO::PARAM_INT); $reqmod->bindValue(':siteweb',$siteweb,PDO::PARAM_STR); $reqmod->bindValue(':localisation',$localisation,PDO::PARAM_STR); $reqmod->bindValue(':signature',$signature,PDO::PARAM_STR); $reqmod->bindValue(':biographie',$biographie,PDO::PARAM_STR); $reqmod->bindValue(':profession',$profession,PDO::PARAM_STR); $reqmod->bindValue(':facebook',$facebook,PDO::PARAM_STR); $reqmod->bindValue(':twitter',$twitter,PDO::PARAM_STR); $reqmod->bindValue(':tumblr',$tumblr,PDO::PARAM_STR); $reqmod->bindValue(':fotolog',$fotolog,PDO::PARAM_STR); $reqmod->bindValue(':googleplus',$googleplus,PDO::PARAM_STR); $reqmod->bindValue(':pinterest',$pinterest,PDO::PARAM_STR); $reqmod->bindValue(':flickr',$flickr,PDO::PARAM_STR); $reqmod->bindValue(':id',$id,PDO::PARAM_INT); $reqmod->execute(); $reqmod->CloseCursor();
et voici les requêtes avec le formulaire pour modifier :
if (empty($_POST['sent'])) { // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire //On commence par s'assurer que le membre est connecté if (isset ($_SESSION['membre_id'])) { //On prend les infos principale (obligatoire) du membre $id=($_SESSION['membre_id']); $query = $bdd->prepare('SELECT membre_pseudo, membre_mail, membre_avatar FROM membres WHERE membre_id=:id'); $query->bindValue(':id', $id, PDO::PARAM_INT); $query->execute(); $data = $query->fetch(); //On prend les infos secondaire du membre $id2=($_SESSION['i_membre_id']); $query2 = $bdd->prepare('SELECT membre_nom, membre_prenom, membre_naissance, membre_signature, membre_siteweb, membre_biographie, membre_profession, membre_localisation FROM infos_membre WHERE i_membre_id=:id'); $query2->bindValue(':id', $id2, PDO::PARAM_INT); $query2->execute(); $data2 = $query2->fetch(); // On prend les infos réseaux sociaux du membre $id3=($_SESSION['rs_membre_id']); $query3 = $bdd->prepare('SELECT membre_facebook, membre_twitter, membre_tumblr, membre_flickr, membre_pinterest, membre_fotolog, membre_googleplus FROM rs_membre WHERE rs_membre_id=:id'); $query3->bindValue(':id', $id3, PDO::PARAM_INT); $query3->execute(); $data3 = $query3->fetch(); echo '<div id="infosmembre">'; echo '<p class="textesimplegrisay">' . "Consulter votre : " . '<a href="voirprofil.php?action=consulter">' . "Profil" . '</a>'; echo '<h1 class="textemoyengrisay">' . "Modification de votre profil" . '</h1>'; echo '</div>'; echo '<div id="infosmembre">'; echo '<form method="post" action="voirprofil.php?action=modifier" enctype="multipart/form-data"> <fieldset> <legend><p class="textesimplegrisay"><b>Identifiants</b></p></legend> <div id="cadrepseu"><p class="classinscr">Pseudo : <strong>' . htmlspecialchars($data['membre_pseudo']) . '</strong></p></div> <p class="textesimplegrisay">Vous devez renseigner votre mot de passe pour valider la modification.</p> <div id="cadrepseu"><p class="classinscr"><label for="mdp">Mot de Passe :</label><input type="password" name="mdp" id="pass" value="' . $data['membre_mdp'] . '" /></p></div> <p class="textesimplegrisay">La confirmation de votre mot de passe est essentiel pour la modification.</p> <div id="cadrepseu"><p class="classinscr"><label for="confirm">Confirmer le mot de passe :</label><input type="password" name="confirm" id="confirm" value="' . $data['membre_mdp'] . '"/></p></div> </fieldset> <fieldset> <legend><p class="textesimplegrisay"><b>Informations secondaire</b></p></legend> <div id="cadrepseu"><p class="classinscr"><label for="nom">Votre Nom : </label><input type="text" name="nom" id="nom" value="' . $data2['membre_nom'] . '" /></p></div> <div id="cadrepseu"><p class="classinscr"><label for="prenom">Votre Prenom : </label><input type="text" name="prenom" id="prenom" value="' . $data2['membre_prenom'] . '" /></p></div> <p class="textesimplegrisay">Votre date de naissance doit figurer de la manière suivante : AAAA-MM-JJ.</p> <div id="cadrepseu"><p class="classinscr"><label for="naissance">Votre date de naissance : </label><input type="text" name="naissance" id="naissance" value="' . $data2['membre_naissance'] . '" /></p></div> <div id="cadrepseu"><p class="classinscr"><label for="siteweb">Votre site Web : </label><input type="text" name="siteweb" id="siteweb" value="' . $data2['membre_siteweb'] . '" /></p></div> <div id="cadrepseu"><p class="classinscr"><label for="localisation">Votre localisation : </label><input type="text" name="localisation" id="localisation" value="' . $data2['membre_localisation'] . '" /></p></div> <div id="cadrepseu"><p class="classinscr"><label for="signature">Votre signature : </label><input type="text" name="signature" id="signature" value="' . $data2['membre_signature'] . '" /></p></div> <div id="cadrepseu"><p class="classinscr"><label for="biographie">Votre biographie : </label><input type="text" name="biographie" id="biographie" value="' . $data2['membre_biographie'] . '" /></p></div> <div id="cadrepseu"><p class="classinscr"><label for="profession">Votre profession : </label><input type="text" name="profession" id="profession" value="' . $data2['membre_profession'] . '" /></p></div> </fieldset> <fieldset> <legend><p class="textesimplegrisay"><b>Contacts</b></p></legend> <div id="cadrepseu"><p class="classinscr"><label for="email">Votre adresse E_Mail :</label> <input type="text" name="mail" id="email" value="' . $data['membre_mail'] . '" /></p></div> <fieldset><legend><p class="textesimplegrisay"><b>Profil sur le forum</b></p></legend> <p class="textesimplegrisay">Votre image profil ne doit pas dépassé 500px sur 500px ( 10 Mo ).</p> <div id="cadrepseu"><p class="classinscr"><label for="membre_avatar">Changer votre avatar :</label> <input type="file" name="membre_avatar" id="membre_avatar" /> (Taille max : 10 Mo)<br /><br /> <label><input type="checkbox" name="delete" value="Delete" /> Supprimer l avatar</label> Avatar actuel : <img src="./images/avatars/' . $data['membre_avatar'] . '" class="imgavatar" alt="aucun avatar" /></p></div> </fieldset> <fieldset> <legend><p class="textesimplegrisay"><b>Réseaux Sociaux</b></p></legend> <div id="cadrepseu"><p class="classinscr"><label for="facebook">Votre adresse Facebook : </label><input type="text" name="facebook" id="facebook" value="' . $data3['membre_facebook'] . '" /></p></div> <div id="cadrepseu"><p class="classinscr"><label for="twitter">Votre adresse Twitter : </label><input type="text" name="twitter" id="twitter" value="' . $data3['membre_twitter'] . '" /></p></div> <div id="cadrepseu"><p class="classinscr"><label for="tumblr">Votre adresse Tumblr : </label><input type="text" name="tumblr" id="tumblr" value="' . $data3['membre_tumblr'] . '" /></p></div> <div id="cadrepseu"><p class="classinscr"><label for="flickr">Votre adresse Flickr : </label><input type="text" name="flickr" id="flickr" value="' . $data3['membre_flickr'] . '" /></p></div> <div id="cadrepseu"><p class="classinscr"><label for="pinterest">Votre adresse Pinterest : </label><input type="text" name="pinterest" id="pinterest" value="' . $data3['membre_pinterest'] . '" /></p></div> <div id="cadrepseu"><p class="classinscr"><label for="googleplus">Votre adresse Google Plus : </label><input type="text" name="googleplus" id="googleplus" value="' . $data3['membre_googleplus'] . '" /></p></div> <div id="cadrepseu"><p class="classinscr"><label for="fotolog">Votre adresse Fotolog : </label><input type="text" name="fotolog" id="fotolog" value="' . $data3['membre_fotolog'] . '" /></p></div> </fieldset> <p class="classinscr"><input type="submit" value="Modifier son profil" /> <input type="hidden" id="sent" name="sent" value="1" /> </p></form>'; echo '</div>'; $query->CloseCursor(); $query2->CloseCursor(); $query3->CloseCursor();
Merci pour votre aide et votre attention.
A voir également:
- Sql update inner join
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Wsus offline update - Télécharger - Systèmes d'exploitation
- Nettoyage windows update - Guide
5 réponses
Teste le code sql sur phpmyadmin si tu n'a pas d'erreur sa veut dire que sa vien des code de la page
Merci pour ton attention spz91 :),
Mais comment tester mes requêtes sur phpmyadmin :/ en faisant un copier coller avec la commande sql de chacune de mes requêtes ?
Merci pour ton aide.
Mais comment tester mes requêtes sur phpmyadmin :/ en faisant un copier coller avec la commande sql de chacune de mes requêtes ?
Merci pour ton aide.
Salut !
$reqmod->execute() or die(print_r($reqmod->errorInfo()));
Pour voir les éventuelles erreurs de ta requete ;-)
$reqmod->execute() or die(print_r($reqmod->errorInfo()));
Pour voir les éventuelles erreurs de ta requete ;-)
nn tu le fait une fois en mettant des valeur au azzar si il n'y a pas d'erreur sur phpmyadmin sa veut dire vien pas de mysql
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjours à tous et merci d'avoir porté attention à mon soucis :),
J'ai trouvé l'erreur, une requête UPDATE ne s'effectue sur qu'une table à la fois, un INNER JOIN ne peu pas fonctionner avec un UPDATE ^^,
Ensuite dans mes requêtes de modification j'utilisais 2 définitions d'id ( $id et $id3 ) qui correspondait au même id membre mais qui ne venait pas des mêmes tables, mais étant donné que l'id est identique ^^' j'ai supprimé $id3 et sa définition ne laissant que $id dans les 2 requêtes de modif, et cela fonctionne :).
J'ai trouvé l'erreur, une requête UPDATE ne s'effectue sur qu'une table à la fois, un INNER JOIN ne peu pas fonctionner avec un UPDATE ^^,
Ensuite dans mes requêtes de modification j'utilisais 2 définitions d'id ( $id et $id3 ) qui correspondait au même id membre mais qui ne venait pas des mêmes tables, mais étant donné que l'id est identique ^^' j'ai supprimé $id3 et sa définition ne laissant que $id dans les 2 requêtes de modif, et cela fonctionne :).