Tom's Guide > Forum > Programmation > problème en php : trop d'affichage
Mot :    Pseudo :           
 

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

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

C'est un peu logique, si tu nous disais ce que tu veux afficher ce serait plus simple...

Répondre à ritzle

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

Répondre à jpp13

Merci de m'aider je suis coincé la, c'est énervant.

Répondre à jpp13

on compren pas trop ton blem ... ca afficher 29fois chacun des 29 fois ? tu peux mettre ta page sur le net ?

Répondre à tripollite

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 :

Code :
  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>

Répondre à ImAzIr

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

Répondre à jpp13

Oui j'ai vu juste !

Essaie de placer ton tableau en dehors de ta boucle, comme dans l'exemple que j'ai donné.

Répondre à ImAzIr

ouais j'ai vu merci c'est sympa, j'essaie

Répondre à jpp13

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 !

Répondre à MuadDub

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

Répondre à jpp13

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.

Répondre à ImAzIr

VOila merci encore, ca marche bien, vous êtes des bons !

Répondre à jpp13

Quel était le soucis alors?

Le tableau ou la requête? Ou les deux?

Répondre à ImAzIr

Oui pr le tableau c'était un problème de syntaxe et dans la requete fallais la jointure.

Répondre à jpp13
Tom's Guide > Forum > Programmation > problème en php : trop d'affichage
Aller à :

Il y a 275 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens