mettre une ligne unique sur tableau bouclé

Eléphant du PHP | 124 Messages

10 avr. 2006, 14:27

Salut à tous, :D
Voila mon problème, je créé un tableau de la manière suivante:
  
<?php
$resultSet = mysql_query($sql); 

echo '<table width="85%" border="1" height="20" >' ;

while ($row = mysql_fetch_array($resultSet)) { 
?> 
  </div>
  <tr>
  <td width="11%"><div align="center"><?php echo $row['Id']?></div></td>
  <td width="11%"><div align="center"><?php echo $row['Type']?></div></td>
  <td width="11%"><div align="center"><?php echo $row['Date']?></div></td>
  <td width="11%"><div align="center"><?php echo $row['Signalé_par']?></div></td>
  <td width="11%"><div align="center"><?php echo $row['Lieux']?></div></td>
  </tr> 
</form>
<p>
  <?php }

echo '</table>';
?>
ça fonctionne parfaitement, le seul problème c'est que je voudrais y ajouter une première ligne avec les titres de colonnes qui n'apparraisse qu'une seul fois et non pas une fois toute les deux ligne comme c'est le cas actuellement... :?
Vous avez une idée?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 avr. 2006, 14:29

bah, euh, comme tu ouvres ta table, tu n'as qu'a mettre la 1er ligne en dehors de la boucle ...
  
<?php
$resultSet = mysql_query($sql); 
?>
<table width="85%" border="1" height="20" >
  <tr>
  <td width="11%">1</td>
  <td width="11%">2</td>
  <td width="11%">3</td>
  <td width="11%">4</td>
  <td width="11%">5</td>
  </tr>
<?php
while ($row = mysql_fetch_array($resultSet)) { 
?> 
  </div>
  <tr>
  <td width="11%"><div align="center"><?php echo $row['Id']?></div></td>
  <td width="11%"><div align="center"><?php echo $row['Type']?></div></td>
  <td width="11%"><div align="center"><?php echo $row['Date']?></div></td>
  <td width="11%"><div align="center"><?php echo $row['Signalé_par']?></div></td>
  <td width="11%"><div align="center"><?php echo $row['Lieux']?></div></td>
  </tr> 
</form>
<p>
  <?php }

echo '</table>';
?>
Sinon, tu sais qu'il n'est pas obligatoire de mettre un div pour centrer un élément. Pourquoi est-ce que tu entoure tes <tr> et le contenu de tes <td> par des div ?
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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

10 avr. 2006, 14:30

Heu oui...une idée très simple lol

Il te suffit de mettre ta ligen hors boucle :
<?php
$resultSet = mysql_query($sql);
?>
<form>
<table width="85%" border="1">
<tr>
	<td>ID</td>
	<td>Typr</td>
	<td>Date</td>
	<td>Signalé par</td>
	<td>Lieux</td>
</tr>
<?php
while ($row = mysql_fetch_array($resultSet)) { 
?>
<tr> 
	<td width="11%" align="center"><?php echo $row['Id']; ?></td> 
	<td width="11%" align="center"><?php echo $row['Type']; ?></td> 
	<td width="11%" align="center"><?php echo $row['Date']; ?></td> 
	<td width="11%" align="center"><?php echo $row['Signalé_par']; ?></td> 
	<td width="11%" align="center"><?php echo $row['Lieux']; ?></td> 
</tr>  
<?php }?>
</table>
</form>

Eléphant du PHP | 124 Messages

10 avr. 2006, 14:41

et ben oui c'est ce que j'ai fait mais ça génere un espace entre la première ligne et le reste...et puis la taille des cellules titres ne correspond que difficilement a celle des colonnes....d'où ma question !

Je voudrais qu'elle soit vraiment imbriqué dans le tableau !

Avatar du membre
ViPHP
ViPHP | 3008 Messages

10 avr. 2006, 14:43

Si tu as des espaces bizarres c'est sans aucun doute dû à tes div. As-tu testé mon code ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

10 avr. 2006, 15:05

Le problème doit surtout provenir qu'il y a des tags html placés un peu n'importe ou dans le tableau... nottament un "</form> " et un "<p>"... les <div align="center"> ne posent normalement pas de problème, même si c'est plus simple de mettre le align directement dans le td, voire dans une feuille de style.

Pour rappel/info, un tableau html est constitué de lignes <tr> et de cellules <td> ou <th>, et l'on ne doit écrire QUE dans les cellules, que ce soit des tags html ou du texte :

Code : Tout sélectionner

<table> <!-- ne rien mettre ici on a pas encore créé de ligne --> <tr> <!-- ne rien mettre ici non plus on est pas dans une cellule --> <th> Enfin une cellule, on peut mettre ce qu'on veut</th> <!-- on ne met rien non plus entre des cellules --> <td> Une autre cellule</td> <!-- ne rien mettre là vu qu'on est plus dans une cellule --> </tr> <!-- ne pas écrire entre les lignes --> </table> Et maintenant que l'on est sortit, on peut se lacher sur les <p>, les </form> et autre tags :)
La seule exception à ceci sont les balises thead et tbody, mais entre nous, on s'en passe très bien. Les balises, c'est comme les effluves, faut pas les croiser, c'est mal ! ;)

Quant à ton problème de taille... peut être est ce du au fait que le cumul de tes 5 cellules ne donne que 55% alors que la logique voudrait qu'en additionnant des pourcentages on obtienne 100 ? :)