[PHP] Affichage données Mysql

Affichage données Mysql [PHP] - PHP - Programmation

Marsh Posté le 06-07-2007 à 12:16:03    

Hello à tous ! J'ai un ptit soucis tout bete ! Enfin... Je pense que pour vous les pros ca doit être tout bête ! Enfin voila, j'essaie d'afficher les infos contenu de ma base de données clients : nom, prénom, email etc..comme c'est pour une agence de voyage certains clients on fait plusieurs voyages, et lorsque je demande d'afficher tout les voyages de ces clients sur la meme ligne, comme vous pouvez le voir sur l'image y'a des cases blanches, des trous qui sont tout sauf esthetiques..quelqu'un aurait il la grace et la bonté de bien vouloir m'aider ?  :D
 
http://jaspirit.free.fr/php.jpg


Message édité par majin le 06-07-2007 à 12:18:41
Reply

Marsh Posté le 06-07-2007 à 12:16:03   

Reply

Marsh Posté le 06-07-2007 à 13:06:03    

$query = mysql_query("select * from users" );
$fetch = mysql_fetch_array($query);
$voyages = $fetch['voyage'];
$voyages = explode(",",$voyages);
$nbvoyages = count($voyages);
 
for($i=0;$i!=$nbvoyages;$i++)
{
echo "&raquo;&nbsp;".$voyages[$i]."<br />";
}

Reply

Marsh Posté le 06-07-2007 à 13:19:52    

Mxtrem merci beaucoup pour ton aide ! Mais je ne sais pas ou placer cela dans mon code existant... je te montre mon code :  
Merci !!!  :)  
 

Code :
  1. <html>
  2. <title>Requête base de données</title>
  3. <body>
  4. <?
  5. include 'util.php';
  6. // information pour la connection à le DB
  7. $host = 'localhost';
  8. $user = 'root;
  9. $pass = '';
  10. $db = 'alj';
  11. $order = $_POST ['order'];
  12. $sort = $_POST ['group1'];
  13. // connection à la DB
  14. $link = mysql_connect ('localhost', 'root', '') or die ('Erreur : '.mysql_error() );
  15. mysql_select_db($db) or die ('Erreur :'.mysql_error());
  16. // requête SQL qui compte le nombre total d'enregistrement dans la table et qui
  17. //récupère tous les enregistrements
  18. $select = "SELECT * FROM clients ORDER BY '$order' $sort";
  19. $clients = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
  20. $total = mysql_num_rows($clients);
  21. // si on a récupéré un résultat on l'affiche.
  22. if($total) {
  23.     // debut du tableau
  24.     echo '<p align="center"><table bgcolor="#FFFFFF" border="4" cellpadding="4" cellspacing="2"></p>'."\n";
  25.         // première ligne on affiche les titres prénom et surnom dans 2 colonnes
  26.         echo '<tr>';
  27.         echo '<td bgcolor="#006498"><font color="white"><b><u>Nom</u></b></font></td>';
  28.         echo '<td bgcolor="#006498"><font color="white"><b><u>Prénom</u></b></font></td>';
  29.         echo '<td bgcolor="#006498"><font color="white"><b><u>Date de naissance</u></b></font></td>';
  30.         echo '<td bgcolor="#006498"><font color="white"><b><u>Pseudo</u></b></font></td>';
  31.         echo '<td bgcolor="#006498"><font color="white"><b><u>Rue</u></b></font></td>' ;
  32.         echo '<td bgcolor="#006498"><font color="white"><b><u>Ville</u></b></font></td>' ;
  33.         echo '<td bgcolor="#006498"><font color="white"><b><u>Departement</u></b></font></td>';
  34.         echo '<td bgcolor="#006498"><font color="white"><b><u>Code Postal</u></b></font></td>' ;
  35.         echo '<td bgcolor="#006498"><font color="white"><b><u>Pays</u></b></font></td>' ;
  36.         echo '<td bgcolor="#006498"><font color="white"><b><u>No de Tel</u></b></font></td>' ;
  37.         echo '<td bgcolor="#006498"><font color="white"><b><u>E-mail</u></b></font></td>';
  38.         echo '<td bgcolor="#006498"><font color="white"><b><u>Voyages--></u></b></font></td>';
  39.         echo '</tr>'."\n";
  40.     // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
  41.     while($row = mysql_fetch_array($clients)) {
  42.         echo '<tr>';
  43.         echo '<td bgcolor="#dddddd">'.$row["nom"].'</td></font>';
  44.         echo '<td bgcolor="#cccccc">'.$row["prenom"].'</td></font>';
  45.         echo '<td bgcolor="#dddddd">'.$row["datenaissance"].'</td></font>';
  46.         echo '<td bgcolor="#cccccc">'.$row["pseudo"].'</td></font>';
  47.               echo '<td bgcolor="#dddddd">'.$row["rue"].'</td></font>';
  48.               echo '<td bgcolor="#cccccc">'.$row["ville"].'</td></font>';
  49.         echo '<td bgcolor="#cccccc">'.pref_dept($row["departement"]).'</td></font>';
  50.               echo '<td bgcolor="#dddddd">'.$row["codepostal"].'</td></font>';
  51.               echo '<td bgcolor="#cccccc">'.$row["pays"].'</td></font>';
  52.               echo '<td bgcolor="#dddddd">'.$row["telephone"].'</td></font>';
  53.         echo '<td bgcolor="#cccccc">'.$row["email"].'</td></font>';
  54.                           $voyageQuery = "SELECT * FROM voyages LEFT JOIN clients_voyages ON clients_voyages.voyage_id=voyages.voyage_id WHERE clients_voyages.client_id=".$row["client_id"];
  55.                           $voyages = mysql_query($voyageQuery,$link) or die ('Erreur : '.mysql_error() );
  56.         while($row2 = mysql_fetch_array($voyages)) {
  57.                 echo '<td bgcolor="#dddddd">'.$row2["nom"].'-'.$row2["type"].'('.$row2["annee"].')</td></font>';
  58.         }
  59.         echo '</tr>'."\n";
  60.     }
  61.     echo '</table>'."\n";
  62.     // fin du tableau.
  63. }
  64. else echo "Pas d\'enregistrements dans cette table...";
  65. //*on libère le résultat*//
  66. mysql_free_result($clients);
  67. ?>
  68. </body>
  69. </html>

Reply

Marsh Posté le 06-07-2007 à 14:25:15    

       while($row2 = mysql_fetch_array($voyages)) {
                echo '<td bgcolor="#dddddd">ICI</td></font>';
        }

Reply

Marsh Posté le 06-07-2007 à 15:43:00    

Mxtrem je ne sais pas comment je peux te remercier.. j'ai juste une derniere faveur à te demander.. je colle ton bout de code a l'endroit indiqué, mais j'ai des erreurs, j'ai du mal copier ou oublié un point virgule, peut tu faire un copier/coller tu code complet avec ta modif s'il te plait ca serait adorable :) MERCI !!! Apres je t'embete plus c'est promis !

Reply

Marsh Posté le 06-07-2007 à 16:10:44    

Ben disons que tu dois modifier mon code selon tes besoins soit  
 
$query = mysql_query("select * from clients" );  
$fetch = mysql_fetch_array($query);  
$voyages = $fetch['Nom_dans_bdd_ou_sont_stockes_les_voyages'];  
$voyages = explode(",",$voyages);  
$nbvoyages = count($voyages);  
 
for($i=0;$i!=$nbvoyages;$i++)  
{  
echo "&raquo;&nbsp;".$voyages[$i]."<br />";  
}
 
Je testerai chez moi, là je suis au boulot j'ai fais ça a la va vite.
 
Ca donnera chez toi :
 
while($row2 = mysql_fetch_array($voyages)) {  
                echo '<td bgcolor="#dddddd">';
### DEB *
$query = mysql_query("select * from users" );  
$fetch = mysql_fetch_array($query);  
$voyages = $fetch['voyage'];  
$voyages = explode(",",$voyages);  
$nbvoyages = count($voyages);  
 
for($i=0;$i!=$nbvoyages;$i++)  
{  
echo "&raquo;&nbsp;".$voyages[$i]."<br />";  
}
### FIN *
                echo '</td></font>';  
        }

Reply

Marsh Posté le 06-07-2007 à 16:37:46    

Par contre voilà, la fonction explode développe un tableau (array) à partir d'un séparateur. Je suis parti du principe que ce séparateur est une virgule.
(cf : $voyages = explode(",",$voyages);  )
 
Si jamais dans ta base de données les différents voyages sont séparés par un ; ou par un | ou d'autres choses tu remplaces la virgule (première occurance dans la fonction explode) par ton séparateur ;)
 
J'avais oublié de spécifier, désolé.

Reply

Marsh Posté le 06-07-2007 à 16:43:05    

j'ai rien compris... à l'aide ! lool  Tu veux pas modifier mon fichier si je t'envoi le zip ???? J'habite au Japon, je t'envoi tout ce que tu veux en échange, une gameboy, une japonaise en string, heuu des sushis mais ca risque de ne pas arriver très frais.. lol

Reply

Marsh Posté le 06-07-2007 à 17:06:41    

send me ;)
contact@mxtrem.com

Reply

Marsh Posté le 06-07-2007 à 17:16:07    

Tu déchire ! Merci !!! :-)))

Reply

Marsh Posté le 06-07-2007 à 17:16:07   

Reply

Marsh Posté le 06-07-2007 à 17:54:21    

C'est répondu, j'avais mal lu ton code désolé.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed