Pb mysql_fetch_array()
camille_pernot
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
camille_pernot -
camille_pernot -
Bonjour,
j'ai une erreur que je n'arrive pas a corriger pouvez vous m'aider?
J'utilise wamp pour créer mon site
Voila mon programme php :
<?php
$nomrecette=$_post['nomrecette'];
$type=$_post['type'];
$pays=$_post['pays'];
mysql_connect("localhost", "root", "") or die("impossible de se connecter a la base."); // connexion au serveur
mysql_select_db("easycooking") or die("impossible de selectionner la base."); // connexion à la base de donnée
$req1= "select * from 'recette' where TypeRecette = 'Entrée' and NomRecette = $nomrecette"; // selectionner toutes les lignes de la table 'recette' où les attributs typerecette et nomrecette contiennent les valeurs Entrée et $nomrecette
$res1= mysql_query($req1) or die ("Pb requette ".mysql_error()) ; //executer la requete ou afficher un message d'erreur
$ligne1=mysql_fetch_array($res1);
$req2= "select * from 'recette' where TypeRecette = 'Entrée' and GenreRecette = $type";
$res2= mysql_query($req2);
$ligne2=mysql_fetch_array($res2) or die ("Pb requette ".mysql_error()) ;
$req3= "select * from 'recette' where TypeRecette = 'Entrée' and Pays = $pays";
$res3= mysql_query($req3);
$ligne3=mysql_fetch_array($res3) or die ("Pb requette ".mysql_error()) ;
echo "$ligne1";
echo "$ligne2";
echo "$ligne3";// afficher l'ensemble des attributs selectionnés grace aux requetes
?>
et voici le message d'erreur :
Pb requette 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 ''recette' where TypeRecette = 'Entrée' and NomRecette ='
et voici la table correspondante :
CREATE TABLE IF NOT EXISTS `recette` (
`NRecette` int(255) unsigned NOT NULL AUTO_INCREMENT,
`NomRecette` text NOT NULL,
`Budget` text,
`Calorie` text,
`Description` varchar(255) NOT NULL,
`Continent` text NOT NULL,
`Pays` text,
`TypeRecette` text NOT NULL,
`GenreRecette` text NOT NULL,
`Vegetarien` text NOT NULL,
`Boisson` text,
`Ing1` text NOT NULL,
`Ing2` text,
`Ing3` text,
PRIMARY KEY (`NRecette`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Merci
j'ai une erreur que je n'arrive pas a corriger pouvez vous m'aider?
J'utilise wamp pour créer mon site
Voila mon programme php :
<?php
$nomrecette=$_post['nomrecette'];
$type=$_post['type'];
$pays=$_post['pays'];
mysql_connect("localhost", "root", "") or die("impossible de se connecter a la base."); // connexion au serveur
mysql_select_db("easycooking") or die("impossible de selectionner la base."); // connexion à la base de donnée
$req1= "select * from 'recette' where TypeRecette = 'Entrée' and NomRecette = $nomrecette"; // selectionner toutes les lignes de la table 'recette' où les attributs typerecette et nomrecette contiennent les valeurs Entrée et $nomrecette
$res1= mysql_query($req1) or die ("Pb requette ".mysql_error()) ; //executer la requete ou afficher un message d'erreur
$ligne1=mysql_fetch_array($res1);
$req2= "select * from 'recette' where TypeRecette = 'Entrée' and GenreRecette = $type";
$res2= mysql_query($req2);
$ligne2=mysql_fetch_array($res2) or die ("Pb requette ".mysql_error()) ;
$req3= "select * from 'recette' where TypeRecette = 'Entrée' and Pays = $pays";
$res3= mysql_query($req3);
$ligne3=mysql_fetch_array($res3) or die ("Pb requette ".mysql_error()) ;
echo "$ligne1";
echo "$ligne2";
echo "$ligne3";// afficher l'ensemble des attributs selectionnés grace aux requetes
?>
et voici le message d'erreur :
Pb requette 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 ''recette' where TypeRecette = 'Entrée' and NomRecette ='
et voici la table correspondante :
CREATE TABLE IF NOT EXISTS `recette` (
`NRecette` int(255) unsigned NOT NULL AUTO_INCREMENT,
`NomRecette` text NOT NULL,
`Budget` text,
`Calorie` text,
`Description` varchar(255) NOT NULL,
`Continent` text NOT NULL,
`Pays` text,
`TypeRecette` text NOT NULL,
`GenreRecette` text NOT NULL,
`Vegetarien` text NOT NULL,
`Boisson` text,
`Ing1` text NOT NULL,
`Ing2` text,
`Ing3` text,
PRIMARY KEY (`NRecette`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Merci
4 réponses
Bonjour
Je vois deux problèmes (il y en a peut-être plus ) :
1 - $req1= "select * from 'recette' where TypeRecette = 'Entrée' and NomRecette = $nomrecette"
Nomrecette est un champ texte, la valeur $nomrecette associée devrait être entourée d'apostrophes comme tu l'as fait pour 'Entrée' ->
$req1= "select * from 'recette' where TypeRecette = 'Entrée' and NomRecette = '$nomrecette'"
2 - la variable récupérée depuis un formulaire s'appelle $_POST, pas $_post. Les noms de variables sont sensibles à la casse (majuscules/minuscules) en PHP
Je vois deux problèmes (il y en a peut-être plus ) :
1 - $req1= "select * from 'recette' where TypeRecette = 'Entrée' and NomRecette = $nomrecette"
Nomrecette est un champ texte, la valeur $nomrecette associée devrait être entourée d'apostrophes comme tu l'as fait pour 'Entrée' ->
$req1= "select * from 'recette' where TypeRecette = 'Entrée' and NomRecette = '$nomrecette'"
2 - la variable récupérée depuis un formulaire s'appelle $_POST, pas $_post. Les noms de variables sont sensibles à la casse (majuscules/minuscules) en PHP
Salut,
Ok avec le père, j'ajouterais que mettre le nom de la table entre quotes me parait suspect, mieux vaut ne rien mettre
$req1= "select * from recette where TypeRecette = 'Entrée' and NomRecette = '$nomrecette'"
ou
$req1= "select * from `recette` where TypeRecette = 'Entrée' and NomRecette = '$nomrecette'"
Ok avec le père, j'ajouterais que mettre le nom de la table entre quotes me parait suspect, mieux vaut ne rien mettre
$req1= "select * from recette where TypeRecette = 'Entrée' and NomRecette = '$nomrecette'"
ou
$req1= "select * from `recette` where TypeRecette = 'Entrée' and NomRecette = '$nomrecette'"