Votre question

problème en php : trop d'affichage

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
17 Février 2006 15:00:42

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

17 Février 2006 15:03:06

C'est un peu logique, si tu nous disais ce que tu veux afficher ce serait plus simple...
17 Février 2006 15:08:27

bin je veux afficher en une fois, les champs ke j'ai sélectionné, la ca affiche tout mé 29 fois a chaque fois.

tu sais comment faire, je suis pas bon en algo, j'ai repri un truc sur le site du zero lol
Contenus similaires
17 Février 2006 15:35:43

Merci de m'aider je suis coincé la, c'est énervant.
17 Février 2006 15:40:43

on compren pas trop ton blem ... ca afficher 29fois chacun des 29 fois ? tu peux mettre ta page sur le net ?
17 Février 2006 15:47:11

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>
17 Février 2006 15:49:51

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
17 Février 2006 15:51:25

Oui j'ai vu juste !

Essaie de placer ton tableau en dehors de ta boucle, comme dans l'exemple que j'ai donné.
17 Février 2006 15:55:53

ouais j'ai vu merci c'est sympa, j'essaie
17 Février 2006 15:56:24

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 !
17 Février 2006 16:02:59

bien vu, mais le problème c'est que j'ai des champs dans l'une et l'autre table, je vais faire une jointure alors.

Merci de votre aide.

La tout s'affiche dans le tableau, reste le problème de la requete.

Thx
17 Février 2006 16:04:08

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.
17 Février 2006 16:05:35

VOila merci encore, ca marche bien, vous êtes des bons !
17 Février 2006 16:09:10

Quel était le soucis alors?

Le tableau ou la requête? Ou les deux?
17 Février 2006 16:11:10

Oui pr le tableau c'était un problème de syntaxe et dans la requete fallais la jointure.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS