PHP/SQL Problème affichage de données

Résolu/Fermé
sipherion
Messages postés
1798
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
- 3 déc. 2007 à 16:15
sipherion
Messages postés
1798
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
- 3 déc. 2007 à 16:55
Salut à tous !

Voila, j'ai un petit problème, et j'espère que vous pourrez corriger mon erreur.

J'ai créé un formulaire qui permet la gestion de stock. J'ai finit la partie "Saisie du matériel" mais j'ai un bug dans la partie "Affichage des données".

Je voudrais qu'une page Internet m'affiche la liste des composants déja enregistrés. J'ai tappé le code mais il ne me montre qu'une seule ligne, avec donc un seul résultat.

$requete="select nom,categorie,description,date_achat,quantite,marque from composant;";
$resultat=mysql_query($requete);
if(mysql_num_rows($resultat)){
echo("<table border=1><tr><td>Type</td><td>Nom</td><td>Marque< ;/td><td>Description</td><td>Date d'achat</td><td>Quantité</td></tr>");
while($resultat=mysql_fetch_assoc($resultat)){
$categorie=$resultat['categorie'];
$nom=$resultat['nom'];
$marque=$resultat['marque'];
$description=$resultat['description'];
$date_achat=$resultat['date_achat'];
$qu=$resultat['quantite'];
echo ("<tr><td>".$categorie."</td>
<td>".$nom."</td>
<td>".$marque."</td>
<td>".$description."</td>
<td>".$date_achat."</td>
<td><center>".$qu."</center></td></tr></table ></div>");
}
echo("</table>");
}

En plus il m'affiche une érreur : Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

Pouvez me dire ce que je dois ajouter/supprimer/modifier pour qu'il m'affiche autant de ligne qu'il n'y a de composant ? Merci de votre aide

---

Administrateur réseaux sous Windows Server 2003 et 2008 Bêta et sous Linux Debian

3 réponses

kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
856
3 déc. 2007 à 16:38
Attention !!
Ton erreur vient du fait que tu utilise le même nom de variable pour deux choses qui n'ont rien avoir entre elle :
$resultat=mysql_fetch_assoc($resultat))

Tu met ta ligne courante dans $resultat qui est en fait ton resultSet sur lequel tu es sencé roller.. donc ton prog passe bien une première fois dans ta boucle, et la variable $resultat devient donc un tableau au lieu d'un résultSet, donc le tour d'après ta condition n'est plus vérifiée et ton prog sort de la boucle. Au final tu n'as qu'une ligne d'affichée.

Remplace donc correctement tes variables en renommant ainsi :
while ( $ligne=mysql_fetch_assoc($resultat)) {
  $categorie=$ligne['categorie'];
   ...
 

0
Profil bloqué
3 déc. 2007 à 16:43
Bien vue Kij_82.L'oeil du programmeur.j'ai même pas remarqué.Jespére qu'il lui résoudra son compte!
0
sipherion
Messages postés
1798
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
297
3 déc. 2007 à 16:55
Ok, c'est tout bon, ca marche nickel. La fatigue certainement qui m'a fait utiliser deux fois la même variable. Erreur bête, je me sens nul de pas l'avoir trouvé avant ! Mais comme tu l'as dit Slum-dunk, il faut avoir l'œil du programmeur ! Merci encore
0