UPDATE bon?

UPDATE bon? - PHP - Programmation

Marsh Posté le 05-07-2003 à 00:01:51    

désolé de poster 2 fois d'affilée (bien que j'ai effacé le précédent parce qu'il était inintéressant).

Code :
  1. UPDATE membres SET password='$password', email='$email', msn='$msn', icq='$icq', pageperso='$pageperso', lieuville='$ville', lieupays='$pays', description='$description', age='$age', avatar='$avatar' WHERE id='$id'


 est ce que cette requete mysql est correcte?


Message édité par thwz le 05-07-2003 à 00:03:41
Reply

Marsh Posté le 05-07-2003 à 00:01:51   

Reply

Marsh Posté le 05-07-2003 à 00:05:08    

Il se passe quoi si quelqu'un a un ' dans son nom ou celui de sa ville ? [:figti]  
 
Pour les entiers (id, age), inutile de les mettre entre ' '
 
Sinon, est-ce une bonne idée de stocker l'âge dans la base. Ce n'est pas une donnée "fixe" :/

Reply

Marsh Posté le 05-07-2003 à 00:05:50    

thwz a écrit :

désolé de poster 2 fois d'affilée (bien que j'ai effacé le précédent parce qu'il était inintéressant).

Code :
  1. UPDATE membres SET password='$password', email='$email', msn='$msn', icq='$icq', pageperso='$pageperso', lieuville='$ville', lieupays='$pays', description='$description', age='$age', avatar='$avatar' WHERE id='$id'


 est ce que cette requete mysql est correcte?

:jap: mais le meilleur moyen de le savoir est de l'essayer non ?
 
Edit: [:benou_grilled] Les bonnes remarques de MrBebert en plus :jap:


Message édité par RiderCrazy le 05-07-2003 à 00:07:12
Reply

Marsh Posté le 05-07-2003 à 00:07:39    

mrBebert a écrit :

Il se passe quoi si quelqu'un a un ' dans son nom ou celui de sa ville ?  


la je te suis pas :??:  
 
l'age correspond en fait au timestamp unix de la date de naissance...

Reply

Marsh Posté le 05-07-2003 à 00:08:57    

ben je lai essayée... mais je veux cibler le probleme, savoir si c'est la requete ou le code php qui comporte une erreur. et comme c'est la 1ère fois que j'utilise UPDATE...

Reply

Marsh Posté le 05-07-2003 à 00:10:40    

C'est un problème de caractères spéciaux. Regarde ce que donne la requête si quelqu'un met un password avec le caractère '


Message édité par mrbebert le 05-07-2003 à 00:11:22
Reply

Marsh Posté le 05-07-2003 à 00:11:34    

benh je pense que c'est ton code qui bug... on l'a vu (du moins je l'ai vu) et à mon avis, il doit te manquer une accolade. Met le au clair (tabulations, retour à la ligne, etc...) et balance le [:spamafote]. Car si c'était un erreur sur l'update, tu aurais une erreur sql.

Reply

Marsh Posté le 05-07-2003 à 00:20:24    

mais non y a pas d'erreur... celle qu'il y avait a été résolu par toi, RiderCrazy...
le seul truc c'est que l'update ne se fait pas!

Reply

Marsh Posté le 05-07-2003 à 00:23:41    

euh... tu met bein ton update dans un mysql_query(), pas direct comme ça??

Reply

Marsh Posté le 05-07-2003 à 00:26:54    

Code :
  1. <?
  2. $email = strtolower(strip_tags($email));
  3. $msn = strtolower(strip_tags($msn));
  4. $pseudo = strip_tags($pseudo);
  5. $description = strip_tags(htmlspecialchars($description));
  6. $description = nl2br($description);
  7. $pays = strip_tags($pays);
  8. $ville = strip_tags($ville);
  9. $date = time();
  10. $naissance = mktime(0,0,0,$nmois,$njour,$nans);
  11. $pageperso = "http://".$pageperso;
  12. // préparation de l'url de l'avatar
  13. if($typeavatar == externe)
  14. {
  15. $avatar = "http://".$avatarexterne;
  16. };
  17. if($typeavatar == interne)
  18. {
  19. $avatar = $avatarinterne;
  20. };
  21. require("connexion.php" );
  22. // update ou insert?
  23. if(isset($updateid))
  24. {
  25. mysql_query("UPDATE membres SET password='$password', email='$email', msn='$msn', icq='$icq', pageperso='$pageperso', lieuville='$ville', lieupays='$pays', description='$description', age='$naissance', avatar='$avatar' WHERE id='$id'",$db);
  26. }
  27. else
  28. {
  29. // vérification de l'inexistence du pseudo
  30. $membre = mysql_query("SELECT * FROM membres WHERE id='$updateid'",$db);
  31. $infos = mysql_fetch_array($membre);
  32. if($infos)
  33.  {
  34.  header("Location: index.php?page=sinscrire&erreur=pseudo" );
  35.  }
  36. else
  37.  {
  38. // inscription dans la base mysql
  39. mysql_query("INSERT INTO `membres` (`id`, `pseudo`, `password`, `email`, `msn`, `icq`, `pageperso`, `lieuville`, `lieupays`, `description`, `dateinscription`, `age`, `avatar`, `participation`) VALUES ('', '$pseudo', '$password', '$email', '$msn', '$icq', '$pageperso', '$ville', '$pays', '$description', '$date', '$naissance', '$avatar','')",$db);
  40.  };
  41. };
  42. mysql_close($db);
  43. header("Location: index.php" );
  44. ?>


l'update est dedans mais maintenant je pense qu'elle n'y est pour rien...
l'url de ma page ressemble à ça: inscription.php?updateid=4
id=4 est une ligne qui existe dans ma table mysql, mais ces informations sont fausses, et je voudrais les mettres a jour.


Message édité par thwz le 05-07-2003 à 00:32:45
Reply

Marsh Posté le 05-07-2003 à 00:26:54   

Reply

Marsh Posté le 05-07-2003 à 00:28:02    

lol je sais que je suis nul mais à ce point la... :p

Reply

Marsh Posté le 05-07-2003 à 00:34:54    

Dans la requête, il faudrait plutot utilise $updateid au lieu de $id :??:

Reply

Marsh Posté le 05-07-2003 à 00:36:15    

Code :
  1. if(isset($_GET['updateid']))
  2. {
  3. mysql_query("UPDATE membres SET password='$password', email='$email', msn='$msn', icq='$icq', pageperso='$pageperso', lieuville='$ville', lieupays='$pays', description='$description', age='$naissance', avatar='$avatar' WHERE id='$updateid'",$db);
  4. }


 

Code :
  1. if($infos)

:??: elle est où la conditions là ??


Message édité par RiderCrazy le 05-07-2003 à 00:38:09
Reply

Marsh Posté le 05-07-2003 à 00:41:37    

j'allais pas mettre if(!!$infos) ?
si $info est un tableau, c comme si il était TRUE non?

Reply

Marsh Posté le 05-07-2003 à 00:43:57    

RiderCrazy a écrit :

Code :
  1. if(isset($_GET['updateid']))
  2. {
  3. mysql_query("UPDATE membres SET password='$password', email='$email', msn='$msn', icq='$icq', pageperso='$pageperso', lieuville='$ville', lieupays='$pays', description='$description', age='$naissance', avatar='$avatar' WHERE id='$updateid'",$db);
  4. }




ça ne change rien...

Reply

Marsh Posté le 05-07-2003 à 12:10:25    

Euh, je suis pas un rpo, met je crois que les ';' sont inutiles à la fin des if et if..else. sinon, apès ton update, rajoute

Code :
  1. or die(mysl_error())

Comme ça, si ça vient de ta requêtes sql, tu le sauras...

Reply

Marsh Posté le 05-07-2003 à 12:24:17    

essaie ça :
 

Code :
  1. $query="UPDATE membres SET password='$password', email='$email', msn='$msn', icq='$icq', pageperso='$pageperso', lieuville='$ville', lieupays='$pays', description='$description', age='$naissance', avatar='$avatar' WHERE id='$updateid'";
  2. echo $query;


 
tu verras si la requete contient réellement ce que tu veux  :)

Reply

Marsh Posté le 05-07-2003 à 15:12:45    

up
trop bien j'ai trouvé l'erreur!
je vous mets la soluce pkoi tt de suite

Reply

Marsh Posté le 05-07-2003 à 15:33:40    

ah ben non ca marche tjrs pas...
j'ai recorrigé le code: regardez:

Code :
  1. <?
  2. $email = strtolower(strip_tags($email));
  3. $msn = strtolower(strip_tags($msn));
  4. $pseudo = strip_tags($pseudo);
  5. $description = strip_tags(htmlspecialchars($description));
  6. $description = nl2br($description);
  7. $pays = strip_tags($pays);
  8. $ville = strip_tags($ville);
  9. $date = time();
  10. $naissance = mktime(0,0,0,$nmois,$njour,$nans);
  11. $pageperso = "http://".$pageperso;
  12. // préparation de l'url de l'avatar
  13. if($typeavatar == externe)
  14. {
  15. $avatar = "http://".$avatarexterne;
  16. };
  17. if($typeavatar == interne)
  18. {
  19. $avatar = $avatarinterne;
  20. };
  21. require("connexion.php" );
  22. // update ou insert?
  23. if(isset($_GET['updateid']))
  24. {
  25. $query = "UPDATE membres SET password='$password', email='$email', msn=`$msn`, icq=`$icq`, pageperso=`$pageperso`, lieuville=`$ville`, lieupays=`$pays`, description=`$description`, age=`$naissance`, avatar=`$avatar` WHERE id=`".$_GET['updateid']."`";
  26. }
  27. else
  28. {
  29. // vérification de l'inexistence du pseudo
  30. $membre = mysql_query("SELECT * FROM membres WHERE pseudo='$pseudo'",$db);
  31. $infos = mysql_fetch_array($membre);
  32. if($infos)
  33.  {
  34.  header("Location: index.php?page=sinscrire&erreur=pseudo" );
  35.  }
  36. else
  37.  {
  38. // inscription dans la base mysql
  39. $query = "INSERT INTO `membres` (`id`, `pseudo`, `password`, `email`, `msn`, `icq`, `pageperso`, `lieuville`, `lieupays`, `description`, `dateinscription`, `age`, `avatar`, `participation`) VALUES (``, `$pseudo`, `$password`, `$email`, `$msn`, `$icq`, `$pageperso`, `$ville`, `$pays`, `$description`, `$date`, `$naissance`, `$avatar`,``)";
  40.  };
  41. };
  42. echo $query;
  43. //mysql_query($query,$db);
  44. //mysql_close($db);
  45. //header("Location: index.php" );
  46. ?>


mais ca marche pas. voici ce qu'il m'affcihe pour une url comme ça:
inscription.php?updateid=7
et voila la requete:

Code :
  1. UPDATE membres SET password='motdepasse', email='monmai@mail.com', msn=`moi@msn.com`, icq=`123456789`, pageperso=`http://pageperso.com/moi`, lieuville=`Mos espa`, lieupays=`Coruscant`, description=`je suis un jedi nananaère`, age=`629679600`, avatar=`http://www.images.com/moi.gif` WHERE id=`7`

Reply

Marsh Posté le 05-07-2003 à 15:43:50    

si tu as phpmyadmin (je suppose que c une base mysql)
essaie d'exécuter la requete "à la main", tu auras des infos plus précises sur pourkoi ça marche pas ton update
 
si faut faire avec le client mysql et taper la requete à la main

Reply

Marsh Posté le 05-07-2003 à 15:59:18    

suis-je bete!! :pt1cable:  vous m'aviez donné la réponse! :cry:  elle était la sous mes yeux, mais je ne l'avais pas prise en compte... :sweat:  je suis désolé! le probleme était en fait que javais mis dans la clause WHERE id='7' alors qu'il aurait fallu mettre id=7  :)  
comme l'avait dit m.bebert :jap:  

Citation :

Pour les entiers (id, age), inutile de les mettre entre ' '  


 
je suis encore désolé d'avoir fait durer ce probleme... :whistle:  
et merci à tous!!!! :jap:  :jap:  :hello:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed