[RESOLU] afficher resultat d'une requette dans un tableau formaté

Petit nouveau ! | 8 Messages

18 sept. 2014, 21:00

salut à tous,

je voudrais afficher le résultat du ma requête dans un tableau formaté, le code suivant affiche seulement la dernière ligne du ma table (elle comprit plus de 100 entrées)
<?php

include ('connect.php');

$query='select * from customers';
$result= mysqli_query($con, $query);
while($row = mysqli_fetch_array($result)) {
 
  $cname= $row['customerName'];
  $ccity= $row['city'];
  $ccountry=$row['country'];
}

?>
 <table border="1" style="width:100%">
  <tr>
    <td><?php echo $cname;?></td>
    <td><?php echo $ccity;?></td>
    <td><?php echo $ccountry;?></td>
	</tr>
</table> 
comment faire alors pour aficher toutes les résultats?

merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 sept. 2014, 21:10

salut,

c'est normal à chaque "tour" du while tu écrases les variables.

mets l'affichage dans (le corps du tableau) dans la boucle while.
le début du tableau avant et la fin après.

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 88 Messages

18 sept. 2014, 21:11

Met comme ça ;)
<?php

include ('connect.php');

$query='select * from customers';
$result= mysqli_query($con, $query); ?>

<table border="1" style="width:100%">

<?php while($row = mysqli_fetch_array($result)) {
 
  $cname= $row['customerName'];
  $ccity= $row['city'];
  $ccountry=$row['country'];
}

?>
  <tr>
    <td><?php echo $cname;?></td>
    <td><?php echo $ccity;?></td>
    <td><?php echo $ccountry;?></td>
        </tr>
</table>
Le temps donne sa légitimité à l'existence...

Nestecha
Invité n'ayant pas de compte PHPfrance

18 sept. 2014, 21:26

Met comme ça ;)
<?php

include ('connect.php');

$query='select * from customers';
$result= mysqli_query($con, $query); ?>

<table border="1" style="width:100%">

<?php while($row = mysqli_fetch_array($result)) {
 
  $cname= $row['customerName'];
  $ccity= $row['city'];
  $ccountry=$row['country'];
}

?>
  <tr>
    <td><?php echo $cname;?></td>
    <td><?php echo $ccity;?></td>
    <td><?php echo $ccountry;?></td>
        </tr>
</table>
Bin, ça fera pareil ? Les variables vont être écrasées à chaque tour de boucle, et à la fin on aura qu'une ligne d'écrite avec le dernier résultat trouvé !

Faut créer les lignes et colonnes dans la boucle while :
<?php

include('connect.php');

$query = 'select * from customers';
$result = mysqli_query($con, $query); ?>

<table border="1" style="width:100%">

    <?php while ($row = mysqli_fetch_array($result)) {

        $cname = $row['customerName'];
        $ccity = $row['city'];
        $ccountry = $row['country'];

        echo '<tr>';
        echo '<td>' . $cname . '</td>';
        echo '<td>' . $ccity . '</td>';
        echo '<td>' . $ccountry . '</td>';
        echo '</tr>';
    }
    ?>
</table>

Petit nouveau ! | 8 Messages

19 sept. 2014, 00:32

oui ca bien fonctionné! ;) il fallait mettre tout le code dans la boucle while! bonne explication ;)
merci