Page 1 sur 1
Titre un tableau
Posté : 15 déc. 2006, 12:23
par cmoi
<?php
$table = "formateurs";
$sql = "SELECT * FROM " . $table." ORDER BY societe";
$res = mysql_query($sql);
$nb = mysql_num_rows($res);
$i = 0;
echo '<table>';
while ($i < $nb){
echo '<tr>';
echo '<td valign="top">'.'<a href="'.mysql_result($res, $i, "SITE").'">'.'<b>'.'<font face="Arial, Helvetica, sans-serif" size="1" color="#666666" align="center">'.mysql_result($res, $i, "SOCIETE").'</font>'.'</b>'.'</a>'.'</td>';
echo '<td valign="top">'.'<font face="Arial, Helvetica, sans-serif" size="1" color="#666666" align="center">'.mysql_result($res, $i, "REGIONS").'</font>'.'</td>';
echo '<td valign="top">'.'<font face="Arial, Helvetica, sans-serif" size="1" color="#666666" align="left">'.mysql_result($res, $i, "THEMES").'</font>'.'</td>';
echo '<td valign="top">'.'<font face="Arial, Helvetica, sans-serif" size="1" color="#666666" align="right">'.mysql_result($res, $i, "COUT").'</font>'.'</td>';
echo '</tr>';
$i++;
}
echo '</table>';
?>
J'ai ce tableau. Je voudrais mettre un titre en haut de chaque colonne. Mes essais ne donnent rien. Merci de m'aider.
Posté : 15 déc. 2006, 12:25
par charabia
Tu dois mettre ces infos hors de ta boucle.
En gros juste après ton <table>

Posté : 15 déc. 2006, 12:27
par zeus
Modération : pas la peine de mettre le titre en majuscule, c'est agressif et ça n'apporte rien.
Je l'ai modifié.
De plus, des phrases comme "Bonjour" ou "s'il vous plait" ne coutent pas cher et mettent les les lecteurs dans les meilleures dispositions pour t'aider.
Enfin, pour terminer, quels sont les essais que tu as réalisés ?
Posté : 15 déc. 2006, 12:30
par cmoi
j'avais essayé des choses à base de
echo '<td>'.'TITRE';
Mais c'est pas ca !
Devant echo '<table>', je vais essayer. Mais quel est la syntaxe ?
Merci.
Posté : 15 déc. 2006, 12:31
par charabia
Tes titres sont récupérés dynamiquement ou c'est en "dur" ?
Posté : 15 déc. 2006, 12:33
par cmoi
en fait j'ai fait un tableau en html et le script php est dessous. Le problème est qu'il y a un mauvais alignement.
Les titres seraient en dur.
Posté : 15 déc. 2006, 12:37
par tinou
il faut apres ton <table> un truc du style :
<tr>
<td>Colonne1</td>
<td>Colonne2</td>
<td>Colonne3</td>...
</tr>
avant ton while ouvre bien ta balise <tr>
et dans ton
while ($i < $nb){
tu fait autant de
echo '<td valign="top">'......
que tu a de colonnes et
tu ferme ta balise </tr> apres avoir fermé ton while
Posté : 15 déc. 2006, 12:38
par charabia
L'alignement est un autre problème. Il faudra que nous dise exactement de quoi il s'agit.
Pour tes titres c'est simple. Un tableau HTML s'écrit de la sorte :
Code : Tout sélectionner
<table>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
...etc
</table>
Dans ta boucle, tu génères une nouvelle ligne à chaque fois. Donc si tes titres sont en dur, tu mets la ligne en "dur" en HTML simple, c'est à dire juste après l'ouverture de ton tableau. Tu comprends ?
Code : Tout sélectionner
<table>
<tr>
<td></td>
</tr>
//début de la boucle
<tr>
<td></td>
</tr>
...etc
//fin de la boucle
</table>
Pour infos, il est inutile de concaténer comme tu fais :
'</font>'.'</b>'.'</a>'.'</td>';
peut être tout simplement :
'</font></b></a></td>';
Et évites les fonts si tu peux en les remplaçant par les CSS.
Posté : 15 déc. 2006, 12:44
par charabia
avant ton while ouvre bien ta balise <tr>
et dans ton
while ($i < $nb){
tu fait autant de
echo '<td valign="top">'......
que tu a de colonnes et
tu ferme ta balise </tr> apres avoir fermé ton while
tinou, c'est incorrect. Si tu ouvres le <tr> avant la boucle et que tu la ferme après, ce sont les <td> qui vont être bouclés. Or là cmoi veut une information par ligne. Donc ce que cmoi a fait est correct à ce niveau.
Posté : 15 déc. 2006, 12:47
par cmoi
Merci à Tinou et Charabia, je vais essayer de m'en sortir avec tout ça.
Posté : 15 déc. 2006, 12:51
par tinou
désolé, une petite erreur, je ne la ferai plus, promis

Posté : 15 déc. 2006, 12:53
par charabia

t'es pardonné c'est la fin de la semaine hihi