Il n'affiche pas le premier enregistrement
Résolu
zezinand0
Messages postés
6
Statut
Membre
-
Zaptoz -
Zaptoz -
Bonjour,
J'ai un site en php et une base de données relié au même. Mon probleme est qu'il n'affiche pas le premier enregistrement de la table à afficher.
J'explique mieux, j'ai un menu derroulant "modules" qui contient les page modules_ich.php et modules_mas.php. et cette page modules_ich.php permet l'affichage des 5 modules ich qui sont dans la table modules. Le problème est qu'il affiche que 4 donc pas le premier. je vous laisse le code. Merci beaucoup d'avance ;).
<?php
// le champ modules.download c'est pour distinguer les modules ich de mas.
$ReqSQL= "SELECT * FROM Modules WHERE modules.download='ich'";
//connexion a la BD
$Resultat= connexion($ReqSQL);
if (@mysql_fetch_array($Resultat))
{
echo "<table align='center' border='1'><tr>";
echo "<td>Nom du Module</td>";
echo "<td>Description</td>";
echo "<td></td></tr>";
while ($ligne = mysql_fetch_array($Resultat))
{
$id=$ligne['IDModule'];
echo "<tr><td>".$ligne['Nom_module']."</td>";
echo "<td>".$ligne['description']."</td>";
echo "<td><a href='page_user.php?conteneur=choix_module& qNom=".$ligne['Nom_module']."&qID=".$ligne['IDModule']."''>Download</a></td></tr>";
}
echo "</table>";
}
?>
J'ai un site en php et une base de données relié au même. Mon probleme est qu'il n'affiche pas le premier enregistrement de la table à afficher.
J'explique mieux, j'ai un menu derroulant "modules" qui contient les page modules_ich.php et modules_mas.php. et cette page modules_ich.php permet l'affichage des 5 modules ich qui sont dans la table modules. Le problème est qu'il affiche que 4 donc pas le premier. je vous laisse le code. Merci beaucoup d'avance ;).
<?php
// le champ modules.download c'est pour distinguer les modules ich de mas.
$ReqSQL= "SELECT * FROM Modules WHERE modules.download='ich'";
//connexion a la BD
$Resultat= connexion($ReqSQL);
if (@mysql_fetch_array($Resultat))
{
echo "<table align='center' border='1'><tr>";
echo "<td>Nom du Module</td>";
echo "<td>Description</td>";
echo "<td></td></tr>";
while ($ligne = mysql_fetch_array($Resultat))
{
$id=$ligne['IDModule'];
echo "<tr><td>".$ligne['Nom_module']."</td>";
echo "<td>".$ligne['description']."</td>";
echo "<td><a href='page_user.php?conteneur=choix_module& qNom=".$ligne['Nom_module']."&qID=".$ligne['IDModule']."''>Download</a></td></tr>";
}
echo "</table>";
}
?>
2 réponses
-
Bonjour
C'est normal que la première ligne ne soit pas affichée.
Tu récupères une ligne de la réponse chaque fois que tu fais mysql_fetch_array($Resultat); c'est pour ça que tu fais ta boucle while ($ligne = mysql_fetch_array($Resultat)).
Mais avant, tu as déjà fait if (@mysql_fetch_array($Resultat)) : tu as donc déjà lu la première ligne avant de commencer ta boucle !
De plus, ce test est farfelu, je pense que tu voulais tester s'il y avait au moins une réponse. Il fallait faire :if (mysql_num_rows($Resultat)>0)
Et tu avais utilisé @ : ne t'en sers jamais pour cacher une erreur qui aurait pu être évitée, ici il n'y avait pas lieu de l'utiliser.-
-
Merci j'avais le même problème et en remplaçant mon if par un if du même genre que le tien, ça fonctionne.
Mon code :
$req = $bdd->prepare('Ma requête SELECT"); if ($donnees = $req >0) { while ($donnees = $req->fetch()) { echo ($donnees['commentaire']); } } else echo('<h4 style="text-align: center;">Aucun Commentaires</h4>');
-
-
Bonjour le père,
Mais oui! je suis très con... c'est juste que il n'avait pas d'erreur mais réellement je lit la première ligne dans mon test -.-'. J'ai juste changé mon if par le votre et ça a marché de suite =).
Merci beaucoup le père pour la vitesse de réponse et pour la réponse