Affichage tableau php/html

Résolu
Bonjour,

je souhaite créer un tableau avec html table/tr/th et en php echo ... td ... le problème c'est que quand j'affiche ma première colonne ca s'affiche bine dans la colonne pos mais quand j affiche la deuxième colonne "ville" il s'affiche en dessous de pos et pas dans le th "ville" comment faire pour que chaque collone de mes requetes soient afficher dans chaque th

voici le code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>resultats</title>
<link rel="stylesheet" type="text/css" href="style-result.css" />
</head>
<body>

<table>
<tr>
<th>POS.</th>
<th>VILLE</th>
<th>COUREURS</th>
<th>EQUIPE</th>
<th>POINTS</th>
<tr/>
<?php

define('DB_SERVER', 'localhost'); // serveur mysql
define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
define('DB_SERVER_PASSWORD', ''); // mot de passe
define('DB_DATABASE', 'classement'); // nom de la base

$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
// sélection de la base de données
mysql_select_db(DB_DATABASE, $connect);

$sql = 'SELECT pos FROM general order by pos';
$req = mysql_query($sql);
while($resultat = mysql_fetch_assoc($req)){
foreach ($resultat as $valeur)

{
echo '<tr><td>'.$valeur.'</td></tr>';

}
}
$sql2 = 'SELECT ville FROM general';
$req2 = mysql_query($sql2);
while($resultat2 = mysql_fetch_assoc($req2)){
foreach ($resultat2 as $valeur2)

{
echo '<tr><td>'.$valeur2.'</td></tr>';

}
}

?>

</table>

</body></html>
<?php
mysql_close();
?>
Configuration: Windows Vista
Firefox 3.0.9

4 réponses

  1. Contributeur
    pour commencer tu n'as pas besoin de faire 2 requêtes pour ça, essaye quelque chose dans ce style :

    $sql = 'SELECT pos, ville FROM general order by pos';
    $req = mysql_query($sql);
    while ($resultat = mysql_fetch_assoc($req)) {
      echo '<tr><td>'.$resultat['post'].'</td><td>'.$resultat['ville'].'</td></tr>';
    } 
    1. C'est pas <th> et </th> qu'il faut mettre mais <td> et </td> ^^
      1. Contributeur
        non cette partie de son tableau est correcte, mis à part le <tr/> qui devrait être </tr>
      2. @ThEBiShOpmerci thebishop ca fonctionne nickel et vi j ai une tite erreur avec mon tr :-) je louche un peu
    2. Non perreet il a raison il faut bien mettre <th> pour avoir des titres de colonnes en gras, c'est fait pour

      et sa partie de code n'est pas correcte:
      while($resultat2 = mysql_fetch_assoc($req2)){
      foreach ($resultat2 as $valeur2)

      {
      echo '<tr><td>'.$valeur2.'</td></tr>';

      }
      }


      car à chaque boucle foreach il fait un <tr> donc une nouvelle ligne

      il faut soit faire comme dit TheBiShop

      soit faire:

      while($resultat2 = mysql_fetch_assoc($req2)){
      echo '<tr>'; // une nouvelle ligne à chaque ligne de résultats
      foreach ($resultat2 as $valeur2)
      
      {
      echo '<td>'.$valeur2.'</td>';
      
      }
      echo '</tr>';
      }