Problème avec un update en php/mysql

Problème avec un update en php/mysql - PHP - Programmation

Marsh Posté le 01-09-2006 à 11:27:21    

Bonjour,
j'ai crée une page admin pour un site client.
Le client, dans sa section admin, a la possibilité de modifier son agenda des concerts.
Une page lui affiche son agenda accompagné de l'ID du concert.
L'affichage est correct, mais lorsque je fait mes tests et que je modifie certaines données, il n'y a aucun changement. Je vous laisse mon code car moi j'y perds la tête, ça fait une heure que j'essaie mais en vain...
 
Merci
 

Code :
  1. $id=$_POST['val_id'];
  2. $avec=$_POST['avec'];
  3. $even=$_POST['evenement'];
  4. $lieu=$_POST['lieu'];
  5. $adresse=$_POST['adresse'];
  6. $date=$_POST['date'];
  7. $heure=$_POST['heure'];
  8. $info=$_POST['info'];
  9. if (($date!=="" ) and ($avec!="" ))
  10. {
  11. $connex=mysql_connect("tutu","tutu","tutu" ) or die("Connexion impossible" );
  12. mysql_select_db("musicada" ) or die("Connexion impossible à la BD" );
  13. $requete=mysql_query("update agenda set avec=\"$avec\",evenement=\"$even\",lieu=\"$lieu\",adresse=\"$adresse\",date=\"$date\",heure=\"$heure\",info=\"$info\" where id=\"$id\"" );
  14. if (!$requete)
  15.  {
  16.   echo "Erreur à la base Mysql ".mysql_error()." - Recommencez plus tard<br />";
  17.   echo "Merci<br />";
  18.   echo "<a href=\"index.php\">Retour</a>";
  19.  }
  20. else
  21.  {
  22.   echo "Félicitations! Le rajout a été fait<br />";
  23.   echo "<a href=\"index.php\">Index des concerts</a>";
  24.  }
  25. mysql_close();
  26. }
  27. else
  28. {
  29. echo "Non valide, les champs date et avec sont vides<br />";
  30. echo "<a href=\"javascript:history.go(-1)\">Retour</a><br />";
  31. }


---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 01-09-2006 à 11:27:21   

Reply

Marsh Posté le 01-09-2006 à 11:33:54    

ca change pas ton probleme mais je te conseille de prendre l'habitude de faire :
"set avec='".$avec."',evenement='".$even."'"
plutot que set avec=\"$avec\",evenement=\"$even\"

Reply

Marsh Posté le 01-09-2006 à 11:34:34    

et les modifs sont effective dans ta base ?
ta requête, quand tu la copie et exécute en sql directement dans ta base, elle fonctionne ?
et tu sur qu'en mettant le mysql_error en aussi loin tu puisse récupérer l'erreur de requéte ?
j'aurais fais..
 
$rq="update agenda set avec='".$avec."',evenement='".$even."',lieu='".$lieu."',adresse='".$adresse."',date='".$date."',heure='".$heure."',info='".$info."' where id='".$id."'";
$requete=mysql_query($rq ) or die ('Requête non aboutie'.$rq.'erreur : '.mysql_error());

Reply

Marsh Posté le 01-09-2006 à 11:43:40    

Si tu as une erreur, pourrais-tu nous la donner ?
De plus tu devrais aussi prendre l'habitude de "protéger" les noms de tes champs par des `, ça m'a déjà éviter des bugs !

Reply

Marsh Posté le 01-09-2006 à 11:49:29    

Grâce à ton astuce, voici l'erreur transmise par mysql:

Code :
  1. Requête non aboutie erreur : Query was empty


chani_t, la midif ne se fait pas sur la table.
Quant à FMC, j'avais opté pour les ' au début et quand j'ai constaté que cela ne marchait pas, j'ai alors mis le \" croyant que mon erreur venait de là.
 
Je vais essayé directement par sql. ainsi que l'atuce de betsamée
Je vous tiens au courant.
 
Merci

Message cité 1 fois
Message édité par oualad le 01-09-2006 à 11:50:45

---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 01-09-2006 à 11:56:42    

la chaîne de requête est vide :ouch:.. tu as bien mis les mêmes variables ? (la variable que j'ai appelée $rq ?)
 
EDIT : Normalement tu devrais voir apparaitre ta requête dans l'erreur, or tu ne la vois pas donc tu dois avoir une erreur au niveau du chargement de la variable.


Message édité par chani_t le 01-09-2006 à 12:07:06
Reply

Marsh Posté le 01-09-2006 à 12:14:16    

il te manque l'id de connexion dans le mysql_query

Reply

Marsh Posté le 01-09-2006 à 12:18:36    

ça joue pas sur l'erreur l'id de connexion, il va prendre la dernière connexion ouverte :/


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 01-09-2006 à 12:26:40    

moi je trouve que ca pue quand meme pas mal du cul d'ecrire la requete dans le mysql_query
tu aurais tout interet a creer un string contenant la requete (quite a en faire un petit echo)

Reply

Marsh Posté le 01-09-2006 à 12:41:41    

Citation :

moi je trouve que ca pue quand meme pas mal du cul d'ecrire la requete dans le mysql_query


 
Pourquoi est ce que ça "pue du cul" d'écrire sa requête dans un mysql_query ?

Reply

Marsh Posté le 01-09-2006 à 12:41:41   

Reply

Marsh Posté le 01-09-2006 à 12:45:18    

Ethylene a écrit :

Citation :

moi je trouve que ca pue quand meme pas mal du cul d'ecrire la requete dans le mysql_query


 
Pourquoi est ce que ça "pue du cul" d'écrire sa requête dans un mysql_query ?


je trouve ca pas propre mais bon ca n'engage que moi

Reply

Marsh Posté le 01-09-2006 à 13:58:19    

oualad a écrit :

Grâce à ton astuce, voici l'erreur transmise par mysql:

Code :
  1. Requête non aboutie erreur : Query was empty


chani_t, la midif ne se fait pas sur la table.
Quant à FMC, j'avais opté pour les ' au début et quand j'ai constaté que cela ne marchait pas, j'ai alors mis le \" croyant que mon erreur venait de là.
 
Je vais essayé directement par sql. ainsi que l'atuce de betsamée
Je vous tiens au courant.
 
Merci


 
Attention, je ne parle pas de Quote simple, je parle du caractère ` il permet de protéger tes champs.  
Ex: $q = "SELECT * FROM `matable` WHERE `user`='truc'";
 
Affiche-nous ta requête avec un print/echo, ça aidera certainement.

Reply

Marsh Posté le 01-09-2006 à 14:16:53    

Ethylene a écrit :

Citation :

moi je trouve que ca pue quand meme pas mal du cul d'ecrire la requete dans le mysql_query


 
Pourquoi est ce que ça "pue du cul" d'écrire sa requête dans un mysql_query ?


 
Bah parce que ça fait pas très propre :o
 
Tout est question de propreté :D
 
C'est quand même plus joli ça :
 

Code :
  1. $req = 'SELECT * FROM matable WHERE id = ' . $mon_id . ' AND pseudo = "' . $mon_pseudo . '" ORDER BY pseudo';


 
Que ça :
 

Code :
  1. mysql_query("SELECT * FROM matable WHERE id=$mon_id AND pseudo = \"$mon_pseudo\"' ORDER BY pseudo" );


 
Par exemple.
 
Mais comme le dit betsamee, ça n'engage que nous, chacun on truc :) Mais il faut savoir qu'il vaut mieux prendre les bonnes habitudes tout de suite.


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 01-09-2006 à 22:33:11    

Bonsoir,
désolé du retard, je n'ai pas eu le temps de continuer. Je m'y remets.
J'ai une piste:
quand je mets $id='1' (ou autre id), le changement s'opère bien. La màj de la bd est ok.
 
Je vais revoir ma page d'affichage qui contient les infos de la table en focntion du id.
 
Au fait, l'utilisateur reçoit la page d'affichage de tous ses concerts avec id.
Quand il veut modifier un concert, il prends note de l'id et se rend sur la page modif_concert dans laquelle il tape l'id et l'affichage suit en dessous. Donc avec la date, lieu, etc. Le tout généré par un formulaire dans lequel les infos s'affichent dans des 'input type=text'.
De peur qu'il ne change l'id, je l'ai mis en type=hidden.
Est-ce là que vient mon problème?
Je fais mes tests et je vous tiens au courant.
 
 
Encore merci de vos aides. (j'espere avoir été explicite)
 
@+


---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Marsh Posté le 01-09-2006 à 23:12:47    

:bounce:  :bounce:  :bounce:  
Ca marche!
Le input type=hidden foutait la m...
je l'ai mis en type=text et tout est ok. La màj se fait.
 
Merci encore de vos aides.
 :hello:  :hello:  :hello:


Message édité par oualad le 01-09-2006 à 23:13:11

---------------
Un forum étant un lieu d'échange, j'accepte les MP uniquement pour les rendez-vous coquins - Imac PPC G3 350Mhz Mac OS X 10.3.9
Reply

Sujets relatifs:

Leave a Replay

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