Tableau php

jeannot la carotte -  
 mpmp93 -
Bonjour,

j'ai le tableau suivant en php:

echo "<div align=\"center\"><center><table border=\"1\"><tr><td>"; 
echo '<b>'.' nom de la liaison '.'</b>'; 
echo "</td><td>"; 
echo '<b>'.' numéro de la liaison '.'</b>'; 
echo "</td></tr><tr><td>"; 
echo $re['nom_liaison']; 
echo "</td><td>"; 
echo $re['num_liaison']; 
echo "</td></tr>"; 
echo "</table></center></div>";  


sauf que le titre se répete à chaque fois que les variables ont une nouvelles valeurs.
et moi j'aimerais avoir le titre en début de tableau et une seule fois.
comment faire svp?

merci d'avance,

jeannot la carotte
A voir également:

5 réponses

Chris 94 Messages postés 54087 Date d'inscription   Statut Modérateur Dernière intervention   7 345
 
Bonjour,

Tu as demandé à la modération de donner le statut "résolu" à ce topic. C'est donc que tu as trouvé la solution par toi-même.

Il est d'usage, dans cette situation, de se répondre à soi-même pour l'édification des passants.

Merci pour ton attention.
0
mpmp93
 
Première erreur, mélanger le PHP et le HTML. Les bonnes stratégies:
- si la page est un template qui contient majoritairement du code HTML et fait appel ponctuellement au PHP, on écrit son code HTML sans faire appel à echo ailleurs qu'aux endroits où l'on va écrire les données à afficher. Exemple:

<div align="center"><center><table border="1"><tr><td>
<b>nom de la liaison</b>
</td><td>
<b></b>
</td></tr><tr><td>
<?php echo $re['nom_liaison']; ?>
</td><td>
<?php echo $re['num_liaison']; ?>
</td></tr>
</table></center></div>
0
mpmp93
 
Ensuite, le code HTML se structure de la même manière que l'on organise le code PHP en respectant les indentations:

<div align="center">
<center>
<table border="1">
<tr>
<td><b>nom de la liaison</b></td>
<td><b>numéro de la liaison</b></td>
</tr>
<tr>
<td><?php echo $re['nom_liaison']; ?></td>
<td><?php echo $re['num_liaison']; ?></td>
</tr>
</table>
</center>
</div>
0
mpmp93
 
L'élément TABLE permet de structurer son contenu en trois sous-ensembles: THEAD, TBODY, TFOOT. Au passage, éliminons CENTER de notre code qui devient obsolète en HTML5. On peut également changer les TD en TH dans la partie encadrée par THEAD:

<div align="center">
<table border="1">
<thead>
<tr>
<th>nom de la liaison</th>
<th>numéro de la liaison</th>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo $re['nom_liaison']; ?></td>
<td><?php echo $re['num_liaison']; ?></td>
</tr>
</tbody>
</table>
</div>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mpmp93
 
Enfin, on évitera d'utiliser des attributs en relation directe avec l'affichage au profit de déclaration de styles:

<section style="text-align: center;">
<style>
table { border: 1px solid black; }
thead { background-color: #cfcfcf; }
td { border: 1px solid black; }
</style>
<table>
<thead>
<tr>
<th>nom de la liaison</th>
<th>numéro de la liaison</th>
</tr>
</thead>
<tbody>
<tr>
<td><?php echo $re['nom_liaison']; ?></td>
<td><?php echo $re['num_liaison']; ?></td>
</tr>
</tbody>
</table>
</section>

Et voici comment répéter l'affichage des données issues d'une table. On suppose que les données ont été récupérées dans un tableau $listeLiaisons où chaque ligne de ce tableau contient l'équivalent d'un enregistrement de notre table en base de données:

<?php
// on charge les données à afficher depuis une table en base de données
$listeLiaisons = $Appli->getDonneesliaisons();
?>
<section style="text-align: center;">
<style>
table { border: 1px solid black; }
thead { background-color: #cfcfcf; }
td { border: 1px solid black; }
</style>
<table>
<thead>
<tr>
<th>nom de la liaison</th>
<th>numéro de la liaison</th>
</tr>
</thead>
<tbody>
<?php foreach($listeLiaisons AS $key => $re): ?>
<tr>
<td><?php echo $re['nom_liaison']; ?></td>
<td><?php echo $re['num_liaison']; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</section>
0