[php+mySQL]problème insertion bdd

Résolu/Fermé
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 - 9 juil. 2007 à 13:55
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 9 juil. 2007 à 22:25
bonjour à tous .
voila mon problème est que ma requète ne marche visiblement pas .

Voila le code php :

mysql_select_db (DATABASE) or die('Erreur de connexion à la base de données');
if (!$serveur)
{
	die('Non connecté : ' . mysql_error());
}
else
{
	$query = 'INSERT INTO `.$nom_du_qcm.` VALUES ('','.$site.','.$nom.','.$prenom.','.$date.','.$reponse_juste.','.$reponse_fausse.','.$ne_sais_pas.','.$liste_reponses_justes.','.$liste_reponses_fausses.','.$liste_je_ne_sais_pas.')';
	$req = mysql_query($query);
	mysql_close(); 
	echo '<center><br /><br />Résultats enregistrés correctement dans la base de données<br />';
	echo '<font color=\'red\'>Veuillez vous déconnecter avant de fermer l\'Exploreur.<br /></center>';
	echo '<center><table width=\'90\'>';
	echo '<tr><td width=\'50%\'><center><img src=\'../images/print.gif\' alt=\'imprimer\' />&nbsp;<a href=\'javascript:window.print()\'>Imprimer les résultats</a>&nbsp</td>';
	echo '<td width=\'50%\'><center><img src=\'../images/deco.gif\' alt=\'deconnexion\' />&nbsp;<a href=\'logout.php\'>Se déconnecter</a></td></tr></table></center>';
}


Réponse de l'exploreur :

Parse error: parse error in c:\program files\easyphp1-8\www\projet_final\qcm\reponse_qcm_general.php on line 143

ligne 143 :
$query = 'INSERT INTO `.$nom_du_qcm.` VALUES ('','.$site.','.$nom.','.$prenom.','.$date.','.$reponse_juste.','.$reponse_fausse.','.$ne_sais_pas.','.$liste_reponses_justes.','.$liste_reponses_fausses.','.$liste_je_ne_sais_pas.')';

J'ai testé la requète sous mySQL et voila la réponse :

MySQL a répondu:Documentation
#1103 - Nom de table ill�gal: '.$nom_du_qcm.'

Voila le nom de la table est en fait un parametre de la requete et je sais pas trop comment faire ...
A voir également:

4 réponses

Utilisateur anonyme
9 juil. 2007 à 14:01
Bonjour!

L'erreur est évidente:

$query = "INSERT INTO $nom_du_qcm VALUES ('','$site.','$nom','$prenom','$date','$reponse_juste','$reponse_fausse','$ne_sais_pas','$liste_reponses_justes','$liste_reponses_fausses','$liste_je_ne_sais_pas')";

Cependant, j'ai des doutes au sujet des correspondances de tes variables, tu peux me donner le listing de tes variables et à quoi elles correspondent.

0
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 143
9 juil. 2007 à 14:11
oué pour ce qui est du listing des variables, pas de soucis il n'y a pas d'erreur la dessus .
et puis je vois pas trop a quoi cela sert de savoir le role de chacune de ces variables ... tant que les valeurs s'écrivent bien dans la bdd :)
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
9 juil. 2007 à 16:04
salut,

en premier tu devrais mettre les valeurs à insérer entre doubles guillemets.
pour la table tu dois utiliser un mot protégé de SQL ('date' par exemple) ou un espace ou un caractère accentué, tu peux faire le ménage avec une expression régulière.
0
atomy Messages postés 441 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 11 août 2009 92
9 juil. 2007 à 22:06
Salut,

Je ne sais pas si les autres réponses t'ont aidées, mais je vois quelque chose qui n'a pas été dit... ou peut-être que ce n'est plus utile...

Quand tu écris un INSERT INTO... il faut écrire les champs que tu vas inséré avant...

Ex:

INSERT INTO table (champ1, champ2, champ3, ...) VALUES (donnee1, donnee2, donnee3, ...)
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
9 juil. 2007 à 22:25
re,

c'est très vrai à une exception près : quand les valeurs insérées sont dans l'ordre des champs de la table et quelles sont toutes citées.
Une syntaxe plus courte [...] consiste à omettre la liste des noms
d’attribut à la suite du nom de la relation. Cela impose que la liste des valeurs
suivant le mot clé VALUES soit exactement celle définie dans la table et
qu’elles soient dans l’ordre défini dans la définition de la table ; sinon des
erreurs se produiront.

source : cours de php/MySQL de Cyberzoide sur developpez.com
0