Pb mysql_fetch_array()

Fermé
camille_pernot Messages postés 2 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 25 mai 2009 - 25 mai 2009 à 00:34
 camille_pernot - 26 mai 2009 à 10:00
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

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
0
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
25 mai 2009 à 08:18
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'"
0
Tu as raison. Les noms de tables entre quotes ne sont pas suspects, ils sont erronés, c'est sûr.
0
camille_pernot
26 mai 2009 à 10:00
OK j'ai corriger mon programme et maintenant il fonctionne.
Merci pour vos reponses
0