Afficher toutes les entrées d'une table

Résolu
Bonjour,

J'ai un petit soucis. J'ai fait "migrer" mon site web en php en version 7.4 et le passage de mysql à mysqli (je l'avais construit il y a très longtemps).

J'ai tout mis à jour sans problème mais je bute sur un truc tout bête. Je souhaiterai que les entrées dans la base de données s'affichent l'une au dessous de l'autre dans un tableau.

Avec mysql, j'y arrive bien mais avec mysqli, je n'arrive qu'à afficher la dernière entrée.

Je n'arrive pas à voir où je me suis trompé. Est-ce que vous auriez une idée ?

Merci beaucoup et à bientôt

Bruno

Voici mon code:


 include( '../script/connection.inc.php' );
 $conn = mysqli_connect( $servername, $username, $password, $database );
 if ( !$conn ) {
  die( "Échec de la connexion : " . mysqli_connect_error() );
 }
 $req = "SELECT * FROM LCDetudepv";
 $res = $conn->query( $req );
 sql_close( $conn );
 $i = 0;
 while ( $sqlRow = mysqli_fetch_assoc( $res ) ) {
  if ( $i % 2 == 0 ) {
   echo '<tr class="rowTab1">' . "\n";
  } else {
   echo '<tr class="rowTab2">' . "\n";
  }
  $i++;
}

2 réponses

  1. Modérateur
    Bonjour,

    <?php
    //activation de l'affichage des erreurs PHP
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    
    
    //connexio à la bdd en style "objet"
    require_once( '../script/connection.inc.php' );
     
    $servername = "localhost";
    $username = "username";
    $password = "password";
    
    // Create connection
    $conn = new mysqli($servername, $username, $password,  $database);
    
    // Check connection
    if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
    }
    
    
    //requête en style objet
    $req = "SELECT * FROM LCDetudepv";
    if (! $res = $conn->query( $req )){
     echo "Query Error : " .  $conn->error;
    }
    
    
    $i=0;
    /* fetch associative array */
    while ($row = $res->fetch_assoc()) {
      $class  = $i % 2 ? "rowTab1" : "rowTab2";
      echo '<tr class="'.$class.'">' . "\n";
      echo '<td>';
       print_r($row); // a toi de mettre ce que tu veux dans cette cellule...
      echo '</td>';
      echo "</tr>";  
      $i++;
    }
    
    
    //fermeture de la connexion à la bdd
    $conn->close();
    

    0
    1. Bonjour Jordane,

      Merci beaucoup pur ta réponse.

      Alors, j'ai tout refait et je m'étais trompé sur ... un <td> !!! et j'avais mal positionné mon while.

      Du coup, tout refonctionne.

      Je mets mon code, qui est loin d'être parfait, ci-dessous si cela peut aider quelqu'un ... :)

      Encore merci et à bientôt

      Bruno


      ...
      <table border=1 align="center" cellspacing="0" bordercolor="#000000">
      <tr>
      <td align="center" valign="middle"><strong>ID</strong>
      </td>
      <td align="center" valign="middle"><strong>VALEURS</strong>
      </td>
      <td align="center" valign="middle" bordercolor="#000000"><strong>MOTS</strong>
      </td>
      </tr>

      <?php
      include( '../script/connection.inc.php' );
      $conn = mysqli_connect( $servername, $username, $password, $database );
      if ( !$conn ) {
      die( "Échec de la connexion : " . mysqli_connect_error() );
      }
      $req = "SELECT * FROM test";
      $res = $conn->query( $req );
      $i = 0;
      while ( $sqlRow = mysqli_fetch_array( $res ) ) {
      if ( $i % 2 == 0 ) {
      echo '<tr class="rowTab1">' . "\n";
      } else {
      echo '<tr class="rowTab2">' . "\n";
      }
      $i++;

      ?>
      <tr>
      <td align="right" valign="middle">
      <?php
      if ( $sqlRow[ 'id' ] == "" ) {
      print( "" . "\n" );
      } else {
      print '<span style="color:black">' . $sqlRow[ 'id' ] . "\n";
      }
      ?>
      </td>
      <td align="right" valign="middle">
      <?php
      if ( $sqlRow[ 'valeurb' ] == "" ) {
      print( " " . "\n" );
      } else {
      print '<span style="color:black">' . $sqlRow[ 'valeurb' ] . "\n";
      }
      ?>
      </td>
      <td align="right" valign="middle" bordercolor="#000000">
      <?php
      if ( $sqlRow[ 'mot' ] == "" ) {
      print( " " . "\n" );
      } else {
      print '<span style="color:black">' . $sqlRow[ 'mot' ] . "\n";
      }
      }
      ?>  
      </td>
      </tr>
      </table>

      ...
      0