Pb mysql_fetch_array()

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 ;
Configuration: Windows XP Internet Explorer 7.0


Merci

4 réponses

  1. OK j'ai corriger mon programme et maintenant il fonctionne.
    Merci pour vos reponses
    1. Tu as raison. Les noms de tables entre quotes ne sont pas suspects, ils sont erronés, c'est sûr.
      1. 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'"
        1. 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