Bonjour,

Je rencontre un petit problème avec mon code. Je suis débutant.

Ce que je fais

Je récupère les données d'une base de donnée et je les affichent dans un tableau


 <table class ="table table-striped" table style="font-size:1em;">
 <thead class ="table">
     <tr>
         <th>Suivi du Nettoyage</th>
    </tr>
    <tr>
         <td>Date:</td>
         <td>Heure</td>
         <td>Nom: </td>
         <td>Chambre Froide</td>
         <td>Fg Patisserie</td>
         <td>Poste CFroide</td>
         <td>Piano</td>
         <td>Table Chaude</td>
         <td>Table Centrale</td>
         <td>PPatisserie</td>
         <td>Plonge</td>
         <td>Remise</td>
         <td>Sol</td>
     </tr>
 </thead>
 <tbody>
 </thead>
 <tbody>
    <?php while($row=mysqli_fetch_assoc($res)){ ?>
        <tr valign>
        <td><?php echo"{$row['dte']}"; ?></td>
        <td><?php echo"{$row['heure']}"; ?></td>
        <td><?php echo"{$row['nom']}"; ?></td>
        <td><?php echo"{$row['cf']}"; ?></td>
        <td><?php echo"{$row['pat']}"; ?></td>
        <td><?php echo"{$row['pcf']}"; ?></td>
        <td><?php echo"{$row['frno']}"; ?></td>
        <td><?php echo"{$row['tc']}"; ?></td>
        <td><?php echo"{$row['tcc']}"; ?></td>
        <td><?php echo"{$row['spat']}"; ?></td>
        <td><?php echo"{$row['plg']}"; ?></td>
        <td><?php echo"{$row['rem']}"; ?></td>
        <td><?php echo"{$row['sol']}"; ?></td>
        </tr>
   <?php } ?>
</tbody>
</table>

Ce que je veux

J'aimerai que le tableau apparaissent corectement avec des espacements entre les cellules en fonction de la fin des caractères

Merci de Votre Aide

2 réponses


Lartak
Réponse acceptée

Bonjour.
Pour commencer, tu devrais remplacer le premier tr dans le thead par un caption en premier enfant de ton élément table.
Ensuite, tu devrais supprimer l'attribut table de ton élément table ainsi que l'attribut valign de la balise tr dans le tbody.
Puis, tu devrais éviter d'utiliser la syntaxe avec les crochets pour l'affichage de valeur avec PHP, si tu ne fais qu'afficher la valeur d'une seule variable.
Ce qui donnerait déjà :

<style>
table {
    font-size: 1em;
}
caption {
    caption-side: top;
}
</style>
<table class ="table table-striped">
    <caption>Suivi du Nettoyage</caption>
    <thead class ="table">
        <tr>
            <td>Date</td>
            <td>Heure</td>
            <td>Nom</td>
            <td>Chambre Froide</td>
            <td>Fg Patisserie</td>
            <td>Poste CFroide</td>
            <td>Piano</td>
            <td>Table Chaude</td>
            <td>Table Centrale</td>
            <td>Patisserie</td>
            <td>Plonge</td>
            <td>Remise</td>
            <td>Sol</td>
        </tr>
    </thead>
    <tbody>
    <?php while($row = mysqli_fetch_assoc($res)) { ?>
        <tr>
            <td><?php echo $row['dte']; ?></td>
            <td><?php echo $row['heure']; ?></td>
            <td><?php echo $row['nom']; ?></td>
            <td><?php echo $row['cf']; ?></td>
            <td><?php echo $row['pat']; ?></td>
            <td><?php echo $row['pcf']; ?></td>
            <td><?php echo $row['frno']; ?></td>
            <td><?php echo $row['tc']; ?></td>
            <td><?php echo $row['tcc']; ?></td>
            <td><?php echo $row['spat']; ?></td>
            <td><?php echo $row['plg']; ?></td>
            <td><?php echo $row['rem']; ?></td>
            <td><?php echo $row['sol']; ?></td>
        </tr>
   <?php } ?>
    </tbody>
</table>

Je te conseille vivement d'éviter de définir du style directement avec l'attribut style dans tes balises, car c'est difficilement maintenable.
Au cas ou tu ne l'aurai pas remarqué, tu as des balises thead et tbody en trop dans ton code, donc pas étonnant que tu aies des problèmes lors de l'affichage de ton tableau.
Edit:
Je viens de suivre le lien que tu as donné et d'après ce que j'ai pu voir, tu définies des valeurs textuelles pour des champs en base de données qui devraient plutôt avoir une valeur de type boolean, car en l'état actuel c'est plutôt chaotique pour l'affichage de ces données.

Merci pour ton aide,
Des personnes mal intentionées se sont permises de modifer mon code avec des popup de partout et des screamers,
Je trouve cela plus que déplacé.