Erreur SQL

Résolu
YannisCraft Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
YannisCraft Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai un probleme dans ma page php que je ne vois pas comment resoudre.
J'ai deja chercher sur internet et je ne vois pas vraiment comment faire.

Voici le code de la page qui crée un probleme.

update.func.php :


<?php
//function changer information profil

function changer_information_membre($email,$situation,$apropos)
{
$query = mysql_query("UPDATE utilisateurs SET email='$email',situation='$situation',apropos='$apropos' WHERE pseudo='{$_SESSION['pseudo']}") or die(mysql_error());
}


?>

Cet page sert a actualiser les informations dans la base de données.

Le formulaire qui est avec cet page est la :


update.php


<?php
include('functions/membre.func.php');
include('body/menu.php');
include('body/header.php');

if(isset($_POST['submit']))
{
$email = htmlentities(trim($_POST['email']));
$apropos = htmlentities(trim($_POST['apropos']));
$situation = htmlentities(trim($_POST['situation']));
changer_information_membre($email,$situation,$apropos);
header('Location:index.php?page=membre');
}
?>
<h3>Changer vos informations<h3>
<?php
foreach($infos as $info)
{

?>
<form method='POST' action=''>
<label for='situation'>Votre situation : </label>
<select name="situation">
<?php echo isset($info['situation']) ? '<option value='.$info['situation'].'>'.$info['situation'].'</option>' : '';?>
<?php echo $info['situation'] != 'Celibaire' ? '<option value="Celibataire">Célibataire</option>' : ''; ?>
<?php echo $info['situation'] != 'Couple' ? '<option value="Couple">En couple</option>' : ''; ?>
<?php echo $info['situation'] != 'Divorcé(e)' ? '<option value="Divorcé(e)">Divorcé(e)</option>' : ''; ?>
<?php echo $info['situation'] != 'Veuf(ve)' ? '<option value="Veuf(ve)">Veuf(ve)</option>' : ''; ?>
</select><br/><br/>

<label for='email'>Votre email : </label>
<input type="text" name='email' value='<?php echo $info['email']; ?>'><br/><br/>

<label for='apropos'>A propos de vous : </label>
<textarea rows='6' cols='30' name='apropos'><?php echo $info['apropos']; ?></textarea><br/><br/>

<input type='submit' value='Validez' name='submit'>

</form>
<?php

}
?>



Voila j'espere que vous pourrez m'aidez.

7 réponses

-helper- Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   27
 
Plop !

J'ai un problème dans ma page php que je ne vois pas comment résoudre.
Et..... Sinon c'est quoi le problème exactement !?? (si ca marchait on se doute que tu ne serais pas la !)

Si des messages d'erreurs sont présent (dans le source de la page, dans les logs ) ce serait bien de nous les donner !
0
YannisCraft Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Oui désolé j'avais oublier.

L'erreur :


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''YannisCraft' at line 1
0
YannisCraft Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
voici le screen de l'erreur

http://hpics.li/7310aa7
0
YannisCraft Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Je fais tous en local avec wamp server.
0

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

Posez votre question
-helper- Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   27
 
ok j'en demandais pas tant ! lol...

Donc je pense que tu auras compris que c'est ta requete qui ne fonctionne pas.... Mysql ne comprend pas ce que tu lui demande... Ne voyant pas de problème de synthaxe dans ta requête... j'imagine que tes données ne sont pas échappées correctement...

Fait un :
var_dump( "UPDATE utilisateurs SET email='$email',situation='$situation',apropos='$apropos' WHERE pseudo='{$_SESSION['pseudo']}" );

au début de la fonction : function changer_information_membre($email,$situation,$apropos)
A chaque fois que tu as un problème de requête SQL, tu affiches la valeur de la requête juste avant de l'exécuter comme çà tu sais pourquoi ça va pas très vite... Si tu ne vois toujours pas... ce que je fais apres je prends la requête et j'essaye dans PhpMyAdmin jusqu'à ce que çà fonctionne...

Personnellement ça je trouve ça bien (pour l'afficher dans du .... HTML) :
    $email = htmlentities(trim($_POST['email']));
    $apropos = htmlentities(trim($_POST['apropos']));
    $situation = htmlentities(trim($_POST['situation']));


Mais pourquoi utiliser son résultat dans une base de données !???
0
Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
 
EN plus d'être non échappé comme le dit -helper-, il y a une autre erreur de Syntaxe :
WHERE pseudo='{$_SESSION['pseudo']}")
Il manque un p'tit apostrophe, nan ?
WHERE pseudo='{$_SESSION['pseudo']}'")
0
YannisCraft Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup cela ma grandement aidez !

Merci -helper- pour ces conseil !

je les utiliserai .




Nhay tu a raison c'est l'apostrophe que j'avais oublier. xD merci.
0