Erreur requete SQL

Bonjour,
j'ai un code me permettant d'afficher le contenu de ma biblio suivant le genre de livres selectionné.A l'affichage, j'ai un tableau vide .j'arrive pas à situer mon erreur.
Voici mon code
<form action = "resultat_g.php" method = "post">
<fieldset>

<table align= "center" border=0 cellPadding=10 cellSpacing=1>

<tr><td>Genre </td><td><select name="genre">
<option value=""></option>
<option value="roman">Roman</option>
<option value="poesie">Poésie</option>
<option value="developpement">Developpement</option>
</select></td></tr>
<tr><td></td><td><input type="submit" value="Afficher" ></td></tr>
</table>
</fieldset>
</form>
--------------------------------------------
code de recuperation:
$rec_genre= $_POST['genre'];print $rec_genre;
$affich = "select * from livre where genre = '\".$rec_genre.\"'";
$res = mysql_query($affich,$liaison) or die('Erreur SQL !<br />'.$res.'<br />'.mysql_error());
$liste = mysql_fetch_assoc($res);
while($liste)
{ print "<tr><td>".$liste["id"]."</td><td>" .$liste["titre"]."</td><td>".$liste["auteur"]."</td><td>"
.$liste["annee"]."</td><td>".$liste["genre"]."</td><td>".$liste["etat"]."</td></tr>";
}

2 réponses

  1. Contributeur
    $affich = "select * from livre where genre = '$rec_genre';";
    [...]
    while($liste = mysql_fetch_assoc($res))
    {
    print "<tr><td>{$liste['id']}</td><td>{$liste['titre']}</td><td>{$liste['auteur']}</td><td>{$liste['annee']}</td><td>{$liste['genre']}</td><td>{$liste['etat']}</td></tr>"; 
    }


    Ca serait mieux de tout mettre dans un script ... Tu veux que je te montre ?
    1. Contributeur
      T'as oublié de corriger la ligne du while, c'est pour ça que ça ne fonctionne pas. Là il part en boucle infinie vu que $list ne devient jamais null vu que rien ne le modifie.
    2. je ne vois pas ce que he dois corriger dans le while

      ?php
      $rec_genre= $_POST['genre'];print $rec_genre;
      $affich = "select * from livre where genre = '$rec_genre';";
      $res = mysql_query($affich,$liaison) or die('Erreur SQL !<br />'.$res.'<br />'.mysql_error());
      $liste = mysql_fetch_assoc($res);
      while($liste)
      print "<tr><td>".$liste["id"]."</td><td>" .$liste["titre"]."</td><td>".$liste["auteur"]."</td><td>"
      .$liste["annee"]."</td><td>".$liste["genre"]."</td><td>".$liste["etat"]."</td></tr>";
      ?>
    3. Contributeur
      while($liste = mysql_fetch_assoc($res))
      FAUT LIRE HEIN (tant que t'y es, lis aussi mon post #4)
    4. trop cool !! ça marche.
      j'avais la tete ailleurs.
      Merci c'est très gentil
  2. Contributeur
    Ceci (https://pastebin.com/caWd1Xuk) devrait fonctionner. Fais de même pour tes autres scripts, ton appli prendra 2x moins de place. Pour les header/footer, tu peux les mettre dans une lib (sous forme de fonctions) et les appeler dans tes scripts. Ce sera plus facile à modifier et le code source sera plus court (plus lisible, donc).
    1. Infiniment merci .Tes conseils seront appliqués à la lettre
      Encore merci