Se connecter avec
S'enregistrer | Connectez-vous

problème en php : trop d'affichage

Dernière réponse : dans Programmation

Voila j'ai une table ki contient 29 occurences, le problème c ke ds ma page, ca maffiche tout 29 fois, le problème est dans la boucle mais je sais pas comment l'améliorer :



$reponse = mysql_query("SELECT * FROM bios, hardware"); // Requête SQL


while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p>
Nom machine : <?php echo $donnees['NAME']; ?>
Utilisateur : <?php echo $donnees['USERID']; ?>
L'adresse IP : <?php echo $donnees['IPADDR']; ?>
Numéro de série : <?php echo $donnees['SSN']; ?>
Proceseur : <?php echo $donnees['PROCESSORS']; ?>
Fabricant : <?php echo $donnees['SMANUFACTURER']; ?>
Mémoire vive : <?php echo $donnees['MEMORY']; ?>
</p>
<?php

}

mysql_close(); // Déconnexion de MySQL
?>



Merci de m'aider

Autres pages sur : probleme php affichage

Lassé par la pub ? Créez un compte

Il faut que tu fasses un tableau !!!

Avec la structure du tableau en dehors de la boucle (pour n'afficher qu'une fois le tableau...) et les cellules à l'intérieur (pour afficher autant de cellules que de données...).

Voila un exemple :
  1. <table class="tonStyleDeTableau">
  2. <tr>
  3. <td class="tonStyleDeCellule">Champ1</td>
  4. <td class="tonStyleDeCellule">Champ2</td>
  5. </tr>';
  6. <?php
  7. while ($donnees = mysql_fetch_array($reponse))
  8. {
  9. echo "<tr>";
  10. echo " <td class='tonStyleDeCellule'>".$donnees['NAME']."</td>";
  11. echo " <td class='tonStyleDeCellule'>".$donnees['USERID']."</td>";
  12. .
  13. .
  14. .
  15. echo "</tr>";
  16. }
  17. ?>
  18. </table>

Ok, ma page en php est la suivante :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Affichage données OCSWEB</title>
</head>

<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("ocsweb"); // Sélection de la base ocsweb

//$reponse = mysql_query("SELECT NAME, SMANUFACTURER, USERID, IPADDR, SSN, PROCESSORS, MEMORY FROM bios, hardware"); // Requête SQL
$reponse = mysql_query("SELECT * FROM bios, hardware"); // Requête SQL


while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p>
<table border="1" cellpadding ="5">
<tr>
<td align="center"> <b>Nom machine</b></td><?php echo $donnees['NAME']; ?>
<td align="center"> <b>Utilisateur</b></td><?php echo $donnees['USERID']; ?>
<td align="center"> <b>Adresse IP</b></td><?php echo $donnees['IPADDR']; ?>
<td align="center"> <b>Numéro de série</b></td><?php echo $donnees['SSN']; ?>
<td align="center"> <b>Processeur</b></td><?php echo $donnees['PROCESSORS']; ?>
<td align="center"> <b>Fabricant</b></td><?php echo $donnees['SMANUFACTURER']; ?>
<td align="center"> <b>Mémoire vive</b></td><?php echo $donnees['MEMORY']; ?>
</tr>
</p>
<?php
}
mysql_close(); // Déconnexion de MySQL
?>
//<body>
//</body>
</html>




je souhaiterais afficher les données choisies dans un tableau.
il y a 2 problèmes :

- le tablaeau s'affiche bien mais les données s'affichent en dehors du tableau
- le résultat affiché : Ma table bios contient 29 entrées et pr chaque résultat je le retrouve a chaque fois, soit 29*29 = 841 résultats


Voila je trouve pas la solution.

Merci de m'aider

A mon avis, le problème ne vient pas de ta boucle mais de ta requête SQL
Tu fais un from sur 2 tables (bios et hardware) sans les croiser, donc forcément, mysql te sort tout en double.
Essaye juste d'enlever ',hardware' de ta requete, ça devrait marcher !

Citation :
mysql te sort tout en double


Mysql ne sort pas tout en double mais au carré !
De plus, il sélectionne des champs dans 2 tables différentes...sans voir la structure des tables on ne peut pas savoir si chaque table contient les mêmes champs.
Donc je ne pense pas que ça vienne de la mais de toute façon il y a un soucis dans l'affichage du tableau vis-a-vis de la boucle.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde