tableau a plusieurs cellucles

Le
Pascal
Bonjour,

je récupère des données d'un annuaire ldap que j'affiche sur une page html dans un tableau de cette
façon :

echo "<table>";
for ($i=0; $i<$result["count"]; $i++) {
$nom=$result[$i]["uid"][0];
echo "<tr><td>" . $nom . "</td></tr>";
}
echo '<p></table>';

le problème est que le tableau n'a donc qu'une colonne.
qu'elle est la solution pour définir le nombre de colonnes ???


d'avance merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thief13
Le #35716

le problème est que le tableau n'a donc qu'une colonne.
qu'elle est la solution pour définir le nombre de colonnes ???


Tu fais une deuxieme boucle à l'interieur de la première

Olivier Miakinen
Le #35717

je récupère des données d'un annuaire ldap que j'affiche sur une page html dans un tableau de cette


Merci de régler ton Thunderbird de façon à ce qu'il coupe les lignes à
moins de 80 colonnes. On conseille souvent 72.

Outils > Options > Général > Reformater les messages
textes en lignes de 72 caractères.

façon :

echo "<table>";


Rajouter des sauts de ligne (n) de temps en temps permet d'aérer un peu
le code généré, ce qui aide quand on cherche d'éventuels bugs.

for ($i=0; $i<$result["count"]; $i++) {
$nom=$result[$i]["uid"][0];
echo " }
echo '<p></table>';
^^^

Erreur : ce <p> n'a rien à faire dans une table, et un valideur de code
HTML devrait te le dire.

le problème est que le tableau n'a donc qu'une colonne.
qu'elle est la solution pour définir le nombre de colonnes ???


Il suffit de rajouter autant de <td> et </td> que de colonnes.
Par exemple, si en plus de "uid" tu as "gid" et "size" :

echo "<table>n";
for ($i = 0; $i < $result["count"]; $i++) {
$nom = $result[$i]["uid"][0];
$groupe = $result[$i]["gid"][0];
$taille = $result[$i]["size"][0];
echo "t<tr>n"
echo "tt<td>$nom</td>n";
echo "tt<td>$groupe</td>n";
echo "tt<td>$taille</td>n";
echo "t</tr>n"
}
echo "</table>n";

Olivier Miakinen
Le #35715
Le 19/07/2007 23:54, je répondais à Pascal :

Il suffit de rajouter autant de <td> et </td> que de colonnes.
Par exemple, si en plus de "uid" tu as "gid" et "size" :

echo "<table>n";
for ($i = 0; $i < $result["count"]; $i++) {
$nom = $result[$i]["uid"][0];
$groupe = $result[$i]["gid"][0];
$taille = $result[$i]["size"][0];
echo "t<tr>n"
echo "tt<td>$nom</td>n";
echo "tt<td>$groupe</td>n";
echo "tt<td>$taille</td>n";
echo "t</tr>n"
}
echo "</table>n";


Et si les colonnes sont $result[$i]["uid"][0], $result[$i]["uid"][1],
$result[$i]["uid"][2], etc., alors :

echo "<table>n";
for ($i = 0; $i < $result["count"]; $i++) {
echo "t<tr>n"
foreach ($result[$i]["uid"] as $nom) {
echo "tt<td>$nom</td>n";
}
echo "t</tr>n"
}
echo "</table>n";

Pascal
Le #35244
Merci de régler ton Thunderbird de façon à ce qu'il coupe les lignes à
moins de 80 colonnes. On conseille souvent 72.
oui

Erreur : ce <p> n'a rien à faire dans une table, et un valideur de code
HTML devrait te le dire.
oui

Il suffit de rajouter autant de <td> et </td> que de colonnes.
Par exemple, si en plus de "uid" tu as "gid" et "size" :
ça n'est pas le cas


ça n'était pas vraiment ma question :

je ne récupère aucune autre entrée que uid, donc lors de ma boucle il met les résultat l'un en
dessous de l'autre, or je voudrais que ce résultat soit affiché sur plusieurs colonnes
(éventuellement que je puisse choisir le nombre de colonne)

merci pour la leçon ;-)

Olivier Miakinen
Le #35243

ça n'était pas vraiment ma question :

je ne récupère aucune autre entrée que uid, donc lors de ma boucle il met les résultat l'un en
dessous de l'autre, or je voudrais que ce résultat soit affiché sur plusieurs colonnes
(éventuellement que je puisse choisir le nombre de colonne)


D'accord. Alors voici.


$nbcol = 3; /* 3 colonnes pour l'exemple */

echo "<table>n";
for ($i = 0; $i < $result["count"]; $i++) {
$colnum = $i % $nbcol; /* varie de 0 à $nbcol-1 */
if ($colnum == 0) {
/* première colonne */
echo "t<tr>n"
}
$nom = $result[$i]["uid"][0];
echo "tt<td>$nom</td>n";
if ($colnum == $nbcol - 1) {
/* dernière colonne */
echo "t</tr>n"
}
}
if ($colnum != $nbcol - 1) {
/* le dernier tr n'est pas encore fermé */
echo "t</tr>n"
}
echo "</table>n";


À l'endroit du dernier test, si tu veux tu peux rajouter des <td></td>,
autant qu'il en manque entre $colnum et $nbcol-1, mais ce n'est pas
obligatoire.

merci pour la leçon ;-)


De rien ;-)
(Mais tes lignes sont toujours trop longues.)

Publicité
Poster une réponse
Anonyme