Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Je souhaite afficher les valeurs de la requête dans un beau tableau. Visiblement vu le résultat cela ne marche pas.
Tout est à la suite. J'ai essayé de mettre des balises <td> entre les résultats de l' echo sans succès. Je dois repenser le mode d'affichage de mon tableau mais mes connaissances en tableaux sont proche du néant. Des conseils????
Voici le code PHP

 <table border ="2">
                             <thead border ="2">
                                    <tr>
                                      <th scope="col"><strong>Nom du scellé</strong></th>
                                      <th scope="col"><strong>Type du scellé</strong></th>
                                      <th scope="col"><strong>Situation Initiale du scellé</strong></th>
                                      <th scope="col"><strong>Situation Finale du scellé</strong></th>
                                    </tr>
                              </thead> </br>
                                  <tbody>
                                    <tr border ="2">
                                    <td border = "2">
                                       <?php

                                        $reponse = $bdd->query('SELECT num_scelle, type_scelle, idtyp_scelle, si_scelle, scelles.idsi_scelle, sf_scelle, scelles.idsf_scelle FROM scelles, type_scelle, si_scelle, sf_scelle WHERE idtyp_scelle LIKE idtype_scelle AND scelles.idsi_scelle LIKE si_scelle.idsi_scelle AND scelles.idsf_scelle LIKE sf_scelle.idsf_scelle');
                                            if($reponse){ 
                                                while ($donnees = $reponse->fetch())
                                            {
                                                     echo  $donnees['num_scelle'] ."".$donnees['type_scelle']."".$donnees['si_scelle'] ."".$donnees['sf_scelle'] ."</br>";
                                            }

                                        $reponse->closeCursor(); 
                                            }

                                                else
                                            {

                                                echo "erreur dans l'execution de la requête";

                                            }

                                        ?>  
                                    </td>   
                                    </tr>
                                    </t
                                    body>

Ce que je veux

Un beau tableau

Ce que j'obtiens

:( un truc tout vilain pas du tout en accord avec le résulat souhaité toue les valeur sont ans la première colone complètement en vrac.
Merci à vous

6 réponses


quenti77
Réponse acceptée

On peut même l'améliorer :

<style>
    /* A mettre dans un fichier à pars css */
    table, thead, tr, td {
        border: 2px solid black;
    }

    th {
        font-weight: bold;
    }
</style>
<table>
    <thead>
    <tr>
        <th>Nom du scellé</th>
        <th>Type du scellé</th>
        <th>Situation Initiale du scellé</th>
        <th>Situation Finale du scellé</th>
    </tr>
    </thead>
    <tbody>
    <?php $results = $bdd->query('...'); ?>
    <?php foreach ($results as $scelle): ?>
        <tr>
            <td><?= $scelle['num_scelle'] ?></td>
            <td><?= $scelle['type_scelle'] ?></td>
            <td><?= $scelle['si_scelle'] ?></td>
            <td><?= $scelle['sf_scelle'] ?></td>
        </tr>
    <?php endforeach; ?>
    </tbody>
</table>

Je te conseil de bien te relire . La tu boucle dans un td mais ce que tu veux c'est boucler les lignes. Donc qu'est-ce que la boucle doit répéter ?

jjr
Auteur

Salut Quentin77
Justement je suis d'accord je dois boucler sur mes lignes <tr> et non pas sur les data. J'ai essayé de supprimer le td et de boucler sur tr mais rien n'y fait cela ne s'aligne même pas avec mes colonnes th.

Bonjour.

J'ai essayé de supprimer le td et de boucler sur tr mais rien n'y fait cela ne s'aligne même pas avec mes colonnes th.

Il ne te faut pas supprimer le td, mais plutôt par exemple comme ceci :

<tbody>
<?php $reponse = $bdd->query('...'); if ($reponse) {
    while($donnees = $reponse->fetch()) { ?>
    <tr border="2">
        <td border="2"><?= $donnees['num_scelle'] ?></td>
        <td border="2"><?= $donnees['type_scelle'] ?></td>
        <td border="2"><?= $donnees['si_scelle'] ?></td>
        <td border="2"><?= $donnees['sf_scelle'] ?></td>
    </tr>
    <?php }
} ?>    
</tbody>

bon exemple

jjr
Auteur

Merci à tous je teste ça des que possible ma carte mère vient de griller pc hs :/ :( quoi qu'il en soit je le mets déjà en résolu