Titre un tableau

Eléphant du PHP | 440 Messages

15 déc. 2006, 12:23

        <?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.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 déc. 2006, 12:25

Tu dois mettre ces infos hors de ta boucle.

En gros juste après ton <table> ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

15 déc. 2006, 12:27

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 ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 440 Messages

15 déc. 2006, 12:30

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.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 déc. 2006, 12:31

Tes titres sont récupérés dynamiquement ou c'est en "dur" ?

Eléphant du PHP | 440 Messages

15 déc. 2006, 12:33

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.

Eléphant du PHP | 86 Messages

15 déc. 2006, 12:37

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
Comme dit le proverbe chinois:"Si tu parles a tes chaussons.....C'est que tu es le Roi des C..." :D

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 déc. 2006, 12:38

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.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 déc. 2006, 12:44

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.

Eléphant du PHP | 440 Messages

15 déc. 2006, 12:47

Merci à Tinou et Charabia, je vais essayer de m'en sortir avec tout ça.

Eléphant du PHP | 86 Messages

15 déc. 2006, 12:51

désolé, une petite erreur, je ne la ferai plus, promis :oops:
Comme dit le proverbe chinois:"Si tu parles a tes chaussons.....C'est que tu es le Roi des C..." :D

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 déc. 2006, 12:53

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