[RESOLU] Erreur SQL SYNTAX

Eléphant du PHP | 424 Messages

25 févr. 2006, 15:47

Bonjour à tous,

J'effectue cette requete :
<? 
require_once('cagnes.php'); 
include ("conffile.php");
@ mysql_pconnect($hostname, $user, $passwd) or die ("Impossible de se connecter");
mysql_select_db($dbname);
?>
<?
  $age = $_POST['age'];  
  $id_categorie = $_POST['categorie'];  
  $entrain_out = $_POST['entrain_out'];  
  $sexe = $_POST['section'];  
  $joueur_out = $_POST['joueur_out'];  
  $dir_out = $_POST['dir_out'];  
  $numero = $_POST['numero'];  
  $nom = $_POST['nom'];  
  $abreviation = $_POST['abreviation'];  
  $photo_p = $_POST['photo_p'];  
  $photo_g = $_POST['photo_g'];  
  $id = $_POST['id']; 


$temp = implode(",",$entrain_out);

$temp1 = implode(",",$dir_out);

$temp2 = implode(",",$joueur_out);
 
 $sql_ajout = 'update tb_equipes set id_age='.$age.', id_categorie='.$categorie.', list_id_entraineur ="'.$temp.'", sexe='.$section.', liste_id_joueur ="'.$temp2.'", liste_id_dirigeant ="'.$temp1.'", numero ='.$numero.', nom ="'.$nom.'", abreviation ="'.$abreviation.'", photo_p ="'.$photo_p.'", photo_g ="'.$photo_g.'" where id_equipe = '.$id;
  $nbsql += 1;
  $result_ajout = mysql_query($sql_ajout)or die(mysql_error()); 
  $ecrire = 0;
  
echo $temp1;
echo $id;
 // echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php?file=Page&name=menu_convoc\">";
?>
Et j'ai une erreur de ce type :

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 ' list_id_entraineur ="24,54", sexe="", liste_id_joueur ="97,124

Que veux dire cette erreur ?
Merci pour votre aide
Youpi Youpi Yo !

HD
Mammouth du PHP | 1181 Messages

25 févr. 2006, 15:56

erreur de syntaxe
essaye ceci :
$sql_ajout = " update tb_equipes set
id_age='.$age.', 
id_categorie='.$categorie.', 
list_id_entraineur =' ".$temp." ', 
sexe='.$section.', 
liste_id_joueur =' ".$temp2." ', 
liste_id_dirigeant =' ".$temp1." ', 
numero ='.$numero.', 
nom =' ".$nom." ', 
abreviation =' ".$abreviation." ', 
photo_p =' ".$photo_p." ', 
photo_g =' ".$photo_g." ' 
where id_equipe = '.$id' "; 
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphant du PHP | 424 Messages

25 févr. 2006, 16:00

Oui effectivement je n'ai plus d'erreur SQL mais plus rien ne s'enregistre dans ma base :(
Youpi Youpi Yo !

HD
Mammouth du PHP | 1181 Messages

25 févr. 2006, 16:05

avant la ligne
$sql_ajout = " update tb_equipes set 
met des
echo "$variable ok<br>"
pour toutes les variables que tu vas enregister
puis montre nous ce que ca affiche
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphant du PHP | 424 Messages

25 févr. 2006, 16:07

J'ai une erreur à la ligne 30 :
$sql_ajout = " update tb_equipes set 
???? bizare :shock:
Youpi Youpi Yo !

Mammouth du PHP | 19672 Messages

25 févr. 2006, 16:08

Il y a des erreurs dans la proposition de HD, ce me semble. Proposition:
$sql_ajout = "UPDATE tb_equipes set
              id_age = ". $age .", 
              id_categorie = ". $categorie .", 
              list_id_entraineur = ". $temp .", 
              sexe = '". $section ."', 
              liste_id_joueur = '". $temp2 ."', 
              liste_id_dirigeant = '". $temp1 ."', 
              numero = ". $numero .", 
              nom = '". $nom ."', 
              abreviation = '". $abreviation ."', 
              photo_p = '". $photo_p ."', 
              photo_g = '". $photo_g ."' 
              WHERE id_equipe = ".$id;
Attention où tu mets des espaces et à tes concaténations, tu vas avoir des surprises sinon.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

HD
Mammouth du PHP | 1181 Messages

25 févr. 2006, 16:09

$sql_ajout = "UPDATE tb_equipes set 
              id_age = ". $age .", 
(...)
ou plutot
$sql_ajout = "UPDATE tb_equipes set 
              id_age = '. $age .', 
(...)
:? :?:
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphant du PHP | 424 Messages

25 févr. 2006, 16:11

Avec la proposition de hd je n'ai plus d'erreur de syntaxe par contre avec la proposition de Cyrano j'ai une erreur de syntaxe :

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 ' list_id_entraineur = 24,54, sexe

JE ne comprend pas pourtant je suis sur de ma requete
Youpi Youpi Yo !

HD
Mammouth du PHP | 1181 Messages

25 févr. 2006, 16:13

ca devrait marcher :
$sql_ajout = " update tb_equipes set 
id_age='. $age .', 
id_categorie='. $categorie .', 
list_id_entraineur ='. $temp .', 
sexe='. $section .', 
liste_id_joueur ='. $temp2 .', 
liste_id_dirigeant ='. $temp1 .', 
numero ='. $numero .', 
nom ='. $nom .', 
abreviation ='. $abreviation .', 
photo_p ='. $photo_p .', 
photo_g ='. $photo_g .' 
where id_equipe = '. $id' "; 
Modifié en dernier par HD le 25 févr. 2006, 16:18, modifié 1 fois.
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphant du PHP | 424 Messages

25 févr. 2006, 16:17

Oui efectivement ca fonctionne mais rien en s'enregistre dans ma base je coprend pas la !!!!

je mets des echo ca m'affiche bien les valeurs mais dans ma base rien !
Youpi Youpi Yo !

HD
Mammouth du PHP | 1181 Messages

25 févr. 2006, 16:19

j'ai edité le code precedent
et essaye aussi ca :
$sql_ajout = " update tb_equipes set 
id_age='. $age .', 
id_categorie='. $categorie .', 
list_id_entraineur ='. $temp .', 
sexe='. $section .', 
liste_id_joueur ='. $temp2 .', 
liste_id_dirigeant ='. $temp1 .', 
numero ='. $numero .', 
nom ='. $nom .', 
abreviation ='. $abreviation .', 
photo_p ='. $photo_p .', 
photo_g ='. $photo_g .' 
where id_equipe = '$id' "; 
c'est peut etre la condition WHERE et donc le id qui pose problème :?
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Mammouth du PHP | 19672 Messages

25 févr. 2006, 16:22

HD : à quoi servent les points dans ta chaine : regarde la coloration syntaxique de ta requête et compare avec la mienne; tu devrais voir une différence notable, demande toi pourquoi ;)

Dom!, fais afficher ta requête et fais un copier/coller directement dans phpMyAdmin pour vérifier ce qui se passe.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 424 Messages

25 févr. 2006, 16:23

Ton dernier POST fonctionne OUF ! par contre j'ai deux points qui s'enregistre avant et aprés les données de list_id_dirigeant !

comme ceci : . 45,56 .
Youpi Youpi Yo !

HD
Mammouth du PHP | 1181 Messages

25 févr. 2006, 16:27

autant pour moi :oops:
en tous cas je suis convaincu que l'erreur vient (si on applique le code de cyrano ) de se qui vient après
WHERE id_equipe =
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

HD
Mammouth du PHP | 1181 Messages

25 févr. 2006, 16:27

Ton dernier POST fonctionne OUF ! par contre j'ai deux points qui s'enregistre avant et aprés les données de list_id_dirigeant !

comme ceci : . 45,56 .
le dernier post de qui ?
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]