Erreur requete SQL

Fermé
fiacre - 14 août 2011 à 16:47
 fiacre - 16 août 2011 à 00:03
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

ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 338
14 août 2011 à 18:32
$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
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 338
14 août 2011 à 20:20
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.
0
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>";
?>
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 338
15 août 2011 à 23:29
while($liste = mysql_fetch_assoc($res))
FAUT LIRE HEIN (tant que t'y es, lis aussi mon post #4)
0
trop cool !! ça marche.
j'avais la tete ailleurs.
Merci c'est très gentil
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 338
14 août 2011 à 20:19
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).
0
Infiniment merci .Tes conseils seront appliqués à la lettre
Encore merci
0