Problème requête UPDATE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème requête UPDATE

par Invité » 14 août 2006, 12:28

Merci, ça march :)

par polo » 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

par tidus » 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?

par polo » 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.

par tidus » 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 :?

par polo » 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

par tidus » 12 août 2006, 15:23

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

par graphistnet » 12 août 2006, 15:18

Enleve la virgule avant le WHERE

Problème requête UPDATE

par tidus » 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 :?