Erreur SQL [Résolu/Fermé]

Signaler
Messages postés
8
Date d'inscription
jeudi 29 mai 2014
Statut
Membre
Dernière intervention
31 mai 2014
-
Messages postés
8
Date d'inscription
jeudi 29 mai 2014
Statut
Membre
Dernière intervention
31 mai 2014
-
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

Messages postés
92
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
15 juin 2014
17
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 !
Messages postés
8
Date d'inscription
jeudi 29 mai 2014
Statut
Membre
Dernière intervention
31 mai 2014

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
Messages postés
8
Date d'inscription
jeudi 29 mai 2014
Statut
Membre
Dernière intervention
31 mai 2014

voici le screen de l'erreur

http://hpics.li/7310aa7
Messages postés
8
Date d'inscription
jeudi 29 mai 2014
Statut
Membre
Dernière intervention
31 mai 2014

Je fais tous en local avec wamp server.
Messages postés
92
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
15 juin 2014
17
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 !???
Messages postés
840
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
20 décembre 2015
117
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']}'")
Messages postés
8
Date d'inscription
jeudi 29 mai 2014
Statut
Membre
Dernière intervention
31 mai 2014

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.