Tableau php

Fermé
jeannot la carotte - Modifié par jeannot la carotte le 12/04/2011 à 15:14
 mpmp93 - 13 avril 2011 à 11:55
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 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 337
12 avril 2011 à 15:28
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
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
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
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
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