Erreur SQL

Résolu/Fermé
YannisCraft Messages postés 8 Date d'inscription jeudi 29 mai 2014 Statut Membre Dernière intervention 31 mai 2014 - 29 mai 2014 à 14:52
YannisCraft Messages postés 8 Date d'inscription jeudi 29 mai 2014 Statut Membre Dernière intervention 31 mai 2014 - 30 mai 2014 à 17:40
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 mercredi 21 mai 2014 Statut Membre Dernière intervention 15 juin 2014 27
29 mai 2014 à 15:07
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 jeudi 29 mai 2014 Statut Membre Dernière intervention 31 mai 2014
29 mai 2014 à 19:03
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 jeudi 29 mai 2014 Statut Membre Dernière intervention 31 mai 2014
29 mai 2014 à 19:05
voici le screen de l'erreur

http://hpics.li/7310aa7
0
YannisCraft Messages postés 8 Date d'inscription jeudi 29 mai 2014 Statut Membre Dernière intervention 31 mai 2014
29 mai 2014 à 19:08
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 mercredi 21 mai 2014 Statut Membre Dernière intervention 15 juin 2014 27
Modifié par -helper- le 29/05/2014 à 20:45
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 vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
30 mai 2014 à 10:10
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 jeudi 29 mai 2014 Statut Membre Dernière intervention 31 mai 2014
30 mai 2014 à 17:40
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