[PHP][MYSQL]

Résolu/Fermé
aNaR - 13 juin 2008 à 10:59
 aNaR - 13 juin 2008 à 15:17
Bonjour,

J'ai un problème je suppose de syntaxe dans ma requete, pourriez vous me dire si il y a un problème ?

$mysqlresult1 = mysql_query("INSERT INTO Cuestionario (Question1, Question2) VALUES ('$answer1',
'$answer2')");

Ma table est :

ID_Cuest // en auto incremente, PK
Question1
Question2
Question3
etc...

L'erreur est syntaxique d'après le message d'erreur mais étant débutant je ne vois pas ou.

Merci d'avance.

6 réponses

Peut-tu mettre l'erreur qu'il te met?
0
En fait il ne met met aucune erreur (il y a une erreur écrite mais je sais d'ou elle vient ce n'est rien de grave et n'a rien avoir avec cette partie du code).

C'est juste que l'insertion ne se fait pas correctement.

Lorsque je consulte ma table rien n'a été ajouté, pourtant si je fais la requête en mode linéaire (Champ après champ et non plusieurs champ en une requête) ca marche.

ex de code qui marche :

$mysqlresult4 = mysql_query("INSERT INTO Cuestionario (Question31) VALUES ('$answer31')");

Mais ayant un auto incrémente sur mon ID_Cuest, il faut que pour chaque envoie du script php, toute les questions soient rentrées dans ma base en même temps avant que l'autoincremente se passe. (correspond a envoyer toute les valeurs radio de mon questionnaire en une requête).
0
maxwell > aNaR
13 juin 2008 à 11:15
On peut voir le code de ta table et l'ajout de tes lignes qui ne marche pas???
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
13 juin 2008 à 11:05
voila une requete valide
$requete="INSERT INTO `dossier` VALUES ('$n_dossier','$ordre','$nom_charge','$n_forage','$code_postal','$adresse','$date','$x','$y','$z','$referentiel','$path')";
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
13 juin 2008 à 11:06
fait un truc du genre
$requete="INSERT INTO `dossier` VALUES ('$n_dossier','$ordre','$nom_charge')";
$result=mysql_query($requete);
0
$requete="INSERT INTO `Cuestonario` VALUES
('$answer1','$answer2','answer3','answer31','answer32','answer33')";

$result=mysql_query($requete);

Toujours rien, aucune insertion ne s'est produite ni aucun message d'erreur.

Petite précision le questionnaire sous forme html se compose de 40 valeures radio, donc il y aurait 40 insert a faire dans une même requête.

Dans cet exemple ci-dessus je me demande si ce n'est pas parce que je n'ai pas inséré toutes les valeurs de la table que ca marche pas (car il n'est pas précisé dans cette requête le nom des champs, ex: question1, question2 etc...).
0
maxwell > aNaR
13 juin 2008 à 11:19
$requete="INSERT INTO `Cuestonario` VALUES
('$answer1','$answer2','answer3','answer31','answer32','answer33')";

Ne marchera pas si tu as des champs non renseigné (ex: Question 4,Question 5....Question 30) et ou tu n'a pas accepté les valeurs null
0
Test effectué , rajouter les champs ne change rien :)
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
13 juin 2008 à 11:20
il nous faudrait le format de ta table
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
13 juin 2008 à 11:22
exemple


CREATE TABLE `code` (
`ville` varchar(100) NOT NULL,
`code_postal` int(11) NOT NULL,
PRIMARY KEY (`code_postal`)
)
0
CREATE TABLE `cuestionario` (
`ID_Cuest` int(4) NOT NULL auto_increment,
`Question1` text,
`Question2` char(1) default NULL,
`Question3` char(1) default NULL,
`Question31` char(1) default NULL,
`Question32` char(1) default NULL,
`Question33` char(1) default NULL,
`Question4` char(1) default NULL,
`Question41` char(1) default NULL,
`Question42` char(1) default NULL,
`Question43` char(1) default NULL,
`Question5` text,
`Question6` char(1) default NULL,
`Question61` char(1) default NULL,
`Question62` char(1) default NULL,
`Question63` char(1) default NULL,
`Question7` char(1) default NULL,
`Question71` char(1) default NULL,
`Question72` char(1) default NULL,
`Question73` char(1) default NULL,
`Question8` char(1) default NULL,
`Question81` char(1) default NULL,
`Question82` char(1) default NULL,
`Question83` char(1) default NULL,
`Question9` char(1) default NULL,
`Question91` char(1) default NULL,
`Question92` char(1) default NULL,
`Question93` char(1) default NULL,
`Question10` char(1) default NULL,
`Question101` char(1) default NULL,
`Question102` char(1) default NULL,
`Question103` char(1) default NULL,
`Question11` char(1) default NULL,
`Question12` text,
`Question13` char(1) default NULL,
`Question14` char(1) default NULL,
`Question15` char(1) default NULL,
`Question16` char(1) default NULL,
`Question17` char(1) default NULL,
`Question18` char(1) default NULL,
`Question19` text,
PRIMARY KEY (`ID_Cuest`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=22 ;

--
-- Contenu de la table `cuestionario`
--
0
Ils prennent quoi comme valeurs tes $answer2,3,31,32... par exemple??
0
1, 2, 3 ou 4
0
maxwell > aNaR
13 juin 2008 à 11:50
Et tu peut nous mettre le code ou tu recup les variables et ou tu insere ds la BDD??
0
aNaR > aNaR
13 juin 2008 à 11:51
$mysqlresult3 = mysql_query("INSERT INTO Cuestionario (Question3) VALUES ('$answer3')");
$mysqlresult4 = mysql_query("INSERT INTO Cuestionario (Question31) VALUES ('$answer31')");

Avec ce genre de requete ca marche, mais le probleme c'est qu'il sont insérés les un après les autres donc avec des ID_Cuest différent étant donné l'autoincremente.

D'un point de vue affichage pour être plus clair avec ce genre de requetes j'ai dans ma table answer2 une vlaeur, puis une nouvelle ligne avec answer3 etc... avec chaque ligne = un nouveau ID_Cuest.

C'est pour ca que je souhaite faire une seule requete contenant l'insert de toutes les valeurs de mon questionnaire.
0
aNaR > aNaR
13 juin 2008 à 11:54
Je n'ai que ce code d'insertion...

J'ai besoin d'un code de récupération des données en plus ? je croyais que de faire directement l'insert avec le $answer qui correspond au nom de ma déclaration de radio dans mon code html suffisait ?
0
aNaR > aNaR
13 juin 2008 à 11:55
Pour finir l''exemple de mon code html :

<b><br>3. Por favor, puntúa tu grado de acuerdo/desacuerdo con las siguientes afirmaciones sobre jefe o superior inmediato: </b>


<table width="800">
<tr>
<td></td><td>Totalmente Satisfecho</td><td>Satisfecho</td><td>Insatisfecho</td><td>Totalmente Insatisfecho</td><td>No Aplicable</td>
</tr>
<tr>
<td>Conoce bien mi trabajo</td><td><center><input type="radio" value="1" name="answer3"></center></td><td><center><input type="radio" value="2" name="answer3"></center></td><td><center><input type="radio" value="3" name="answer3"></center></td><td><center><input type="radio" value="4" name="answer3"></center></td><td><center><input type="radio" value="5" name="answer3"></center></td>
</tr>
<tr>
<td>Me exige de forma razonable</td><td><center><input type="radio" value="1" name="answer31"></center></td><td><center><input type="radio" value="2" name="answer31"></center></td><td><center><input type="radio" value="3" name="answer31"></center></td><td><center><input type="radio" value="4" name="answer31"></center></td><td><center><input type="radio" value="5" name="answer31"></center></td>
</tr>
<tr>
<td>Se preocupe en escucharme</td><td><center><input type="radio" value="1" name="answer32"></center></td><td><center><input type="radio" value="2" name="answer32"></center></td><td><center><input type="radio" value="3" name="answer32"></center></td><td><center><input type="radio" value="4" name="answer32"></center></td><td><center><input type="radio" value="5" name="answer32"></center></td>
</tr>
<tr>
<td>Me ayuda cuando lo necesito</td><td><center><input type="radio" value="1" name="answer33"></center></td><td><center><input type="radio" value="2" name="answer33"></center></td><td><center><input type="radio" value="3" name="answer33"></center></td><td><center><input type="radio" value="4" name="answer33"></center></td><td><center><input type="radio" value="5" name="answer33"></center></td>
</tr>
</table>
0