Problème requête UPDATE

Eléphanteau du PHP | 31 Messages

12 août 2006, 15:14

Bonjour,

j'ai un formulaire pour modifier un membre, le voici :

MODIFIER_MEMBRE.PHP
<?
     //on se connecte à la BDD
     mysql_connect("localhost", "root", "");
     mysql_select_db("site");

         if (isset($_GET['id']) AND $_GET['id'] != NULL)
         {

            //On peut aussi vérifier que l'id spécifiée existe réellement dans la bdd, en comptant le nbre d'entrées où l'id = $_GET['id']
            $requete_membre = mysql_query("SELECT * FROM membres WHERE id='" . $_GET['id'] . "'");
            $info_membre = mysql_fetch_array($requete_membre);
			
			echo 'Pseudo: ' .$info_membre['pseudo']. '<br><br>'; ?>
			
		    <form action="modifier_membre2.php" method="post">
			pseudo <input type="text" name="pseudo" value="Tidus" /><br><br>
			         E-mail: <input type="text" name="email" value="<? echo $info_membre['email']; ?>" /><br><br>
			                 <label>
                                    Permission: <br />
                                      <select name="permission">
                                         <option value="membre" <?php if ($info_membre['permission'] == 'membre') { echo 'selected="selected"'; } ?>>Membre</option>
                                         <option value="administrateur" <?php if ($info_membre['permission'] == 'administrateur') { echo 'selected="selected"'; } ?>>Administrateur</option>
                                         <option value="moderateur" <?php if ($info_membre['permission'] == 'moderateur') { echo 'selected="selected"'; } ?>>moderateur</option>
                                      </select> <br><br>
                             </label>
			         Travail: <input type="text" name="travail" value="<? echo $info_membre['travail']; ?>" /><br><br>	 
                     Passion: <input type="text" name="passion" value="<? echo $info_membre['passion']; ?>" /><br><br>
					 
             <input type="submit" value="Valider" /> <?		
         }
		 
           else
           {
             echo 'Ce membre n\'existe pas';
           }
		   



?>
Quand on remplit le formulaire pour modifier les infos d'un membre ça nous ammène à modifier_membre2.php:
<?
         //Si l'adresse e-mail entrée est valide, on se conecte à la BDD
         mysql_connect("localhost", "root", "");
         mysql_select_db("site");
		 
// lancement de la requête
$sql ='UPDATE membres SET pseudo="' .$_POST['pseudo']."', email=" .$_POST['email'].", permission=" .$_POST['permission'].", travail=" .$_POST['travail'].", passion=" .$_POST['passion'].",  WHERE pseudo="'tidus"';

// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

// on ferme la connexion à la base
mysql_close();
?>
Modifier avec succès
Mais voilà le problème, je modifie le membre et je clique sur modifier ce qui m'envoie sur la page modifier_membre2.php, mais php m'indique cette erreur :

Parse error: parse error in c:\documents and settings\pino\mes documents\site\modifier_membre2.php on line 7

La ligne de l'erreur est celle-ci:
$sql ='UPDATE membres SET pseudo="' .$_POST['pseudo']."', email=" .$_POST['email'].", permission=" .$_POST['permission'].", travail=" .$_POST['travail'].", passion=" .$_POST['passion'].",  WHERE pseudo="' .$_POST['pseudo'] "';

Voilà, si vous pouvez m'aider c'est vraiment sympas car ça fait une journée que je suis su ce problème :?
Modifié en dernier par tidus le 12 août 2006, 15:25, modifié 1 fois.

Eléphant du PHP | 184 Messages

12 août 2006, 15:18

Enleve la virgule avant le WHERE
Image

Eléphanteau du PHP | 31 Messages

12 août 2006, 15:23

J'ai enlever et j'ai tester mais il y'a toujours la même erreur :s.

Eléphant du PHP | 216 Messages

12 août 2006, 15:46

Bonjour,
tu a aussi oublié un . et tu avez ajouté un ' en trop dans le WHERE de:
$sql ='UPDATE membres SET pseudo="' .$_POST['pseudo']."', email=" .$_POST['email'].", permission=" .$_POST['permission'].", travail=" .$_POST['travail'].", passion=" .$_POST['passion'].",  WHERE pseudo="' .$_POST['pseudo'] "';
Le voici corrigé:
$sql ='UPDATE membres SET pseudo="' .$_POST['pseudo']."', email=" .$_POST['email'].", permission=" .$_POST['permission'].", travail=" .$_POST['travail'].", passion=" .$_POST['passion']." WHERE pseudo=".$_POST['pseudo']."';
En espérant t'avoir aidé :D
Le PHP c'est bien, surtout quand ça marche ;) mon site
Hébergement gratuit et sans pub => Image

Eléphanteau du PHP | 31 Messages

12 août 2006, 15:54

Merci Polo d'avoir essayer mais ça ne marche toujours pas :cry: Je sais pas pourquoi mais y'a un truc qui va pas avec cette ligne c'est trop bizzare :?

Eléphant du PHP | 216 Messages

12 août 2006, 16:03

Il te met toujours le même Parse error ?

Essaie de rentrer les variables à la main dans ta requête et regarde si sa marche, le problème viens de tes $_POST['']

Edit:
ou du moins, essaie de rentrer la variable qui est à l'intérieure du WHERE, à la main.
Le PHP c'est bien, surtout quand ça marche ;) mon site
Hébergement gratuit et sans pub => Image

Eléphanteau du PHP | 31 Messages

12 août 2006, 16:08

Je pense que c'est la requête qui marche pas car quand je met ça
WHERE pseudo=".$_POST['pseudo']."'; 
Le code marche pas et quand je met ça:
WHERE pseudo="Tidus'; 
L'erreur est à la ligne 15 mais moi j'ai notepad ++ et quand le script est gris marche pas, et quand je met $_POST c'est gris quand je met tidus c'est pas gris mais même avec tidus ça marche pas :(. Donc faut refaire une requete je pense non?

Eléphant du PHP | 216 Messages

12 août 2006, 17:39

Tu a encore oublier un "
le code juste est:
WHERE pseudo="Tidus"';
Si tu ne referme pas les guillemets ta requête ne marchera jamais!

Edit: il me semble que Notepad ++ a la colorisation syntaxique il me semble :-k
Le PHP c'est bien, surtout quand ça marche ;) mon site
Hébergement gratuit et sans pub => Image

Invité
Invité n'ayant pas de compte PHPfrance

14 août 2006, 12:28

Merci, ça march :)