pb d'insertion de données dans une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pb d'insertion de données dans une table

par nabs » 02 mai 2006, 12:35

nikel ! ca marche !

en effet c'etait le "ì" qyui bloquait avec cette derniere modif. merci bcp zeus, et merci a tous.

par nabs » 02 mai 2006, 12:33

Est-ce que dans les champs de ta base de données, tu n'aurais pas des champs numeric ou decimal ?
oui j'ai des champs numeriques (idform et idcel) mais en faite en utilisant le phpmyadmin, j'ai vu que les requetes qui étaient executées integraient les cotes (') meme pour les champs numeriques.

par zeus » 02 mai 2006, 12:29

quand tu fait un `, je te conseille de faire un espace pour valider le caractère ;)

tu as un ì au lieu d'un `i dans le dernier champs de ta requete ;)

par nabs » 02 mai 2006, 12:24

ok alors voici la derniere modif et la derniere erreur complete :
   $query="INSERT INTO `fprev` (`idform`,`idcel`,`manager`,`commentaire`,ìdfp`) VALUES('";
   $query=$query.$idform."','".$idcel."','".$manager."','".$commentaire."','');";
   $requete=mysql_query($query)or die($query."<br />".mysql_error()); 
erreur :
INSERT INTO `fprev` (`idform`,`idcel`,`manager`,`commentaire`,ìdfp`) VALUES('2','5','NOM Prenom','test','');
Erreur de syntaxe près de ') VALUES('2','5','NOM Prenom','test','')' à la ligne 1

par zeus » 02 mai 2006, 12:22

Est-ce que dans les champs de ta base de données, tu n'aurais pas des champs numeric ou decimal ?

dans ce cas, il ne faut pas les encadrer par des '

Sinon, si tu as un auto-increment, ce n'est pas la peine de le préciser, il se rempli tout seul ;)

par Vaedan » 02 mai 2006, 12:18

Pour le debug :
$requete=mysql_query($query)or die($query."<br />".mysql_error());
Or, dans l'erreur que tu nous montes, il n'y a pas le $query. Pourrait on l'avoir ? :)

par nabs » 02 mai 2006, 12:16

petite indication, il y a dans cette table un champs que je ne rempli pas par cette requete car c'est la clé primaire primaire qui doit s'autoincrémenter, devrai-je la faire apparaitre dans la requete ou c'est pas necesaire ?

par nabs » 02 mai 2006, 12:13

voici la correction :
   $query="INSERT INTO `fprev` (`idform`,`idcel`,`manager`,`commentaire`) VALUES('";
   $query.=$query.$idform."','".$idcel."','".$manager."','".$commentaire."');";
   $requete=mysql_query($query)or die($query."<br />".mysql_error()); 
et voici le resultat :
Erreur de syntaxe près de '4','5','NOM Prenom','test ')' à la ligne 1
que se passe-t-il ? j'ai franchement tout essayé. il doit surement y avoir un truc que j'ai pas encore fait mais lequel ?

par Vaedan » 02 mai 2006, 11:19

Il manque un '.' (point) !!!
function Commande($type,$commentaire,$idform,$manager,$idcel)
{
  if($type=="formation")
  {
   $query="INSERT INTO fprev ('idform','idcel','manager','commentaire') VALUES('";
   $query .=$query.$idform."','".$idcel."','".$manager."','".$commentaire."');";
   //     ^
   // Ici le point
   $requete=mysql_query($query);       
  }
}
EDIT: ptite correction

par zeus » 02 mai 2006, 11:18

Autour d'un nom de table, il faut utiliser le caractère ALT+è => ` non pas l'apostrophe ' ;)

par nabs » 02 mai 2006, 11:15

comme conseillé j'ai rajouté l'affichage de l'erreur et voici ce qui apparait :
Erreur de syntaxe près de ''fprev' ('idform','idcel','manager','commentaire') VALUES(2,5,'B' à la ligne 1
et franchement j'arrive pas a comprendre cette erreur. j'essaye avec phpmyadmin et il me génère la meme erreur. si vous la voyez merci de bien vouloir me l'indiquer car la je suis aveugle.

par ouckileou » 02 mai 2006, 10:46

Quand une requête ne renvoie pas (ou ne fait pas) ce que l'on attend :
- faire afficher les erreurs MySQL (ou autre)
ex :
mysql_query($requete) or die (mysql_error());
- afficher le SQL généré (c'est ce code qui est important) :
echo $requête;
- regarder si rien ne cloche
- tester directement dans MySQL (ex : via phpMyAdmin) et ajuster

Fais ça, dis nous ce que ça donne et on pourra t'aider ;)

Re: pb d'insertion de données dans une table

par zeus » 02 mai 2006, 10:46

2 conseils qui devraient te permettre de résoudre tout tes problèmes de requetes :
1/ affiche les messages d'erreur avec or die(mysql_error())
2/ affiche les requetes générées en cas d'erreur pour les tester sous phpMyAdmin
function Commande($type,$commentaire,$idform,$manager,$idcel) {
  if($type=="formation") {
   $query="INSERT INTO 'fprev' ('idform','idcel','manager','commentaire') VALUES('";
   $query=$query.$idform."','".$idcel."','".$manager."','".$commentaire."');";
   $requete=mysql_query($query) or die($query."<br />".mysql_error()); //En cass d'erreur d'execution, affichage de l'erreur       
  }
}

pb d'insertion de données dans une table

par nabs » 02 mai 2006, 10:43

slt a tous,
j'ai un petit souci d'enregistrement dans une table en faite. je fais appel à un objet en lui envoyant les parametres a enregistrer, celui ci doit faire une concatenation de la requete dans la méthode appelée et et executer la methode, seulement a l'execution les infos ne sont pas stockées. voici le code :

création de l'objet :
$commande=new Commande("formation",$commentaire,$idform,$manager,$cel->id);
constructeur de l'objet :
function Commande($type,$commentaire,$idform,$manager,$idcel)
 {
  if($type=="formation")
  {
   $query="INSERT INTO 'fprev' ('idform','idcel','manager','commentaire') VALUES('";
   $query=$query.$idform."','".$idcel."','".$manager."','".$commentaire."');";
   $requete=mysql_query($query);       
  }
}
que se passe-t-il avec ma requete ?