Problème de requête UPDATE INNER JOIN SET WHERE

Résolu/Fermé
reverb94 Messages postés 106 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 7 janvier 2014 - 23 juil. 2013 à 13:05
reverb94 Messages postés 106 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 7 janvier 2014 - 28 juil. 2013 à 13:51
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 :/

$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:

5 réponses

Spz91 Messages postés 71 Date d'inscription mardi 30 octobre 2012 Statut Membre Dernière intervention 26 juillet 2013
23 juil. 2013 à 13:07
Teste le code sql sur phpmyadmin si tu n'a pas d'erreur sa veut dire que sa vien des code de la page
0
reverb94 Messages postés 106 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 7 janvier 2014 1
23 juil. 2013 à 13:42
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.
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
23 juil. 2013 à 14:00
Salut !

$reqmod->execute() or die(print_r($reqmod->errorInfo()));
Pour voir les éventuelles erreurs de ta requete ;-)
0
Spz91 Messages postés 71 Date d'inscription mardi 30 octobre 2012 Statut Membre Dernière intervention 26 juillet 2013
23 juil. 2013 à 22:15
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
reverb94 Messages postés 106 Date d'inscription jeudi 7 mars 2013 Statut Membre Dernière intervention 7 janvier 2014 1
28 juil. 2013 à 13:51
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 :).
0