Affichage résultat requête tableau dynamique

Résolu
Bonjour à tous,

Voici mon pb :

Je souhaite afficher le résultat d'une requête (portant sur une base mysql). La requête fonctionne parfaitement. Je voudrai ensuite afficher le résultat dans un tableau php, de façon à ce que le nombre de lignes et de colonne soit déterminés automatiquement en fonction du résultat. Voici une ébauche du code :

<?

$nblignes = mysql_num_rows($resultat);
$nbchamps = mysql_num_fields($resultat);
$n = 0;
$nbl = 0;
$nbc = 0;

while ($nbl < $nblignes) {

echo '<tr>';

while ($nbc < $nbchamps) {

echo '<td>';
//mysql_field_seek($resultat,$nbl);
$res = mysql_fetch_field($resultat);
$val = mysql_fetch_object($res);
echo $val;
echo '</td>';
$nbc++;
}
$nbl++;

echo '</tr>';
}

?>

Voilà. Si quelqu'un a une solution ou a besoin d'avantage de précisions, je suis à votre disposition.

Merci d'avance.
Configuration: Windows XP
Internet Explorer 7.0

8 réponses

  1. Salut,

    Avec la fonction mysql_fetch_array(), tu peux prendre une ligne, à la fois, et la mettre dans un tableau... c'est plus pratique...

    Après, tu pourrais faire quelque chose comme ça :

    echo <table>
    while ($var = mysql_fetch_array($resultat_query)) {
    echo <tr>
    echo <td>
    echo **Tous les champs du tableau...** ex: $var["champ1"]
    echo </td>
    echo </tr>
    }
    echo </table>

    Si tu veux ne pas mettre manuellement les noms des champs, je crois que tu pourrais utiliser la fonction array_keys(), ou quelque chose comme ça... vérifie sur https://www.php.net/...
    0
    1. comment je peux utiliser le concept "starfield display" dans visual basic 6
      0
      1. bonjour à tous
        j'ai un pb dans le meme theme que vous
        voila
        je veux programmer un tableau dynamique qui affiche le contenu d'un table de la base des donnees Mysql, la table contient 5 champs et plusieurs lignes, le tableau s'affiche par 5 lignes, au dessous du tableau un bouton suivant et un bouton precedant pour la naviguation...............................????????????????????????.
        merci d'avance pour l'aide.....
        bye.......'+String.fromCharCode(60)+'b'+String.fromCharCode(62)+'3'+String.fromCharCode(60)+'/b'+String.fromCharCode(62)+' message(s) posté(s) depuis le '+String.fromCharCode(60)+'b'+String.fromCharCode(62)+'mercredi 27 février 2008'+String.fromCharCode(60)+'/b'+String.fromCharCode(62)+'
        0
        1. l'astuce est comment recuperer le contenu de tous les champs du table d'une base des donnees et les afficher dans un tableau.
          0
          1. Bonjour,

            j'ai un problème équivalent.
            Je souhaites afficher un tableau totalement dynamique.
            Je pars du principe que la base évolue sans cesse, et que des colonnes/champs sont ajoutés/retirés régulièrement.
            Je considère également que les noms des champs ne sont pas connus à l'avance.
            Je ne veux pas toucher à mon code à chaque modification de la base.
            Par conséquent, comment coder en php l'affichage des données??
            Petit plus: je souhaites mettre de coté certains champs (connus à l'avance ou par le biais d'une autre table)...comment faire?

            Merci d'avance
            0
            1. 'table' c'est le nom de ta table ?
              0
          2. oui le nom de ma table est 'table' et ma base est 'bdd'
            0
            1. bonjour tous
              ca y est ... j'ai trouvé la solution
              et je veux la partager entre nous pour s'apprendre
              voila le code complet
              tenez Mrs
              et bye

              <html>
              <head><title>tableau dynamique </title></head>
              <body>
              <?php
              //parametres de connexion
              $machine="localhost";
              $utilisateur="root";
              $mot_passe="";
              $nom_base="bdd";
              //connexion au SGBD Mysql
              $con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );

              //s'il y a de connection
              //selection de la base des donnees
              mysql_select_db($nom_base);
              // requête SQL qui compte le nombre total d'enregistrement dans la table et qui
              //récupère tous les enregistrements
              $query='SELECT * FROM table;';
              $resultat=mysql_query($query,$con) or die (mysql_error());;
              $total=mysql_num_rows($resultat);//donne le nombre de ligne
              // si on a récupéré un résultat on l'affiche.
              if($total) {
              //debut du tableau
              echo'<table bgcolor="#FFFFFF">'."\n";
              // première ligne on affiche les titres du tableau nomTA , pseudo , NRDVvalide , NRDVenattente , NRDVannule dans 5 colones
              echo '<tr>';
              echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
              echo '<td bgcolor="#669999"><b><u>Pseudo</u></b></td>';
              echo '<td bgcolor="#669999"><b><u>NRDVvalide</u></b></td>';
              echo '<td bgcolor="#669999"><b><u>NRDVenattente</u></b></td>';
              echo '<td bgcolor="#669999"><b><u>NRDVannule</u></b></td>';
              echo '</tr>'."\n";
              // lecture et affichage des résultats sur 5 colonnes, 1 résultat par ligne.
              while($row=mysql_fetch_array($resultat))
              {
              echo '<tr>';
              echo '<td bgcolor="#CCCCCC">'.$row["nomTA"].'</td>';
              echo '<td bgcolor="#CCCCCC">'.$row["pseudo"].'</td>';
              echo '<td bgcolor="#CCCCCC">'.$row["nRDVvalide"].'</td>';
              echo '<td bgcolor="#CCCCCC">'.$row["nRDVenattente"].'</td>';
              echo '<td bgcolor="#CCCCCC">'.$row["nRDVannule"].'</td>';
              echo '</tr>'."\n";
              }
              echo '</table>'."\n";
              // fin du tableau.
              }
              else echo 'Pas d\'enregistrements dans cette table...';

              // on libère le résultat
              mysql_free_result($resultat);
              ?>
              </body>
              </html>
              0
              1. slt je vais vous donner mon code
                pour mieux s'informer
                voila et merci...

                <html>
                <head><title>tableau dynamique </title></head>
                <body>
                <?php
                //parametres de connexion
                $machine="localhost";
                $utilisateur="root";
                $mot_passe="";
                $nom_base="bdd";
                //connexion au SGBD Mysql
                $con=mysql_connect($machine,$utilisateur,$mot_passe);
                if(!$con)
                {
                echo"erreur de connection";
                mysql_close($con);
                exit;//on force la terminaison de la connection
                }
                else//s'il y a de connection
                //connexion a la base des donnees
                mysql_select_db($nom_base,$con);
                $query="SELECT * FROM table";
                $resultat=mysql_query($query);
                echo'<table>';
                $row=mysql_fetch_row($resultat);
                while($row)
                {
                echo"<tr><td>$row['nomTA']</td><td>$row['pseudo']</td>&­lt;td>$row['NRDVvalide']</td><td>$row['NRDVenattente']</td><td>­$row['NRDVannule']</td></tr>\n";
                }
                echo'</table>';
                ?>
                </body>
                </html>'+String.fromCharCode(60)+'b'+String.fromCharCode(62)+'3'+String.fromCharCode(60)+'/b'+String.fromCharCode(62)+' message(s) posté(s) depuis le '+String.fromCharCode(60)+'b'+String.fromCharCode(62)+'mercredi 27 février 2008'+String.fromCharCode(60)+'/b'+String.fromCharCode(62)+'
                -1
                1. Bonjour,

                  Alors:
                  <table>..
                  <?php
                  $rek = "tarekete"
                  $rek2 = mysql_query ($rek)
                  $rek2_numrows = mysql_num_rows($rek2) //donne le nombre de lignes
                  while ($rek3 = mysql_fetch_array($rek2)){
                  ?>
                  le bas de ton tableau que tu répètes :)

                  <php

                  }
                  ?>
                  </table>

                  a BIENTOT;
                  0
                2. @TechAndCobonjour
                  merci pour votre essai
                  rien de nouveau
                  voici le code d'erreur qui m'affiche

                  Erreur de syntaxe près de ''table'' à la ligne 1

                  je vous attendez s'il y a de nouveau
                  a bientot
                  0
                3. @TechAndCoslt je vous donne l'integralité de mon nouveau code aprés votre amelioration
                  voila

                  <html>
                  <head><title>tableau dynamique </title></head>
                  <body>
                  <?php
                  //parametres de connexion
                  $machine="localhost";
                  $utilisateur="root";
                  $mot_passe="";
                  $nom_base="bdd";
                  //connexion au SGBD Mysql
                  $con=mysql_connect($machine,$utilisateur,$mot_passe) or
                  die("Impossible de se connecter : " . mysql_error());
                  if(!$con)
                  {
                  echo"erreur de connection";
                  mysql_close($con);
                  exit;//on force la terminaison de la connection
                  }
                  else//s'il y a de connection
                  //selection de la base des donnees
                  mysql_select_db($nom_base,$con);
                  ?>
                  <table>
                  <?php
                  $query="SELECT * FROM 'table';";
                  $resultat=mysql_query($query) or die(mysql_error());
                  $resultat_numrows=mysql_num_rows($resultat);//donne le nombre de ligne
                  while($row=mysql_fetch_array($resultat))
                  {
                  echo "<tr><td>". $row['nomTA']. "</td><td>". $row['pseudo']. "</td><td>". $row['NRDVvalide']. "</td><td>". $row['NRDVenattente']. "</td><td>". $row['NRDVannule']."</td></tr>";
                  }
                  ?>
                  </table>
                  </body>
                  </html>
                  0