PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.php > tableau a plusieurs cellucles
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
tableau a plusieurs cellucles

Réponse
 
LinkBack Outils de la discussion
Vieux 19/07/2007, 18h58   #1
Pascal
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut tableau a plusieurs cellucles

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
  Réponse avec citation
Vieux 19/07/2007, 22h54   #2
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: tableau a plusieurs cellucles

Le 19/07/2007 19:58, Pascal a écrit :
>
> 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 "<tr><td>" . $nom . "</td></tr>";
> }
> 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 "\t\t<td>$nom</td>\n";
echo "\t\t<td>$groupe</td>\n";
echo "\t\t<td>$taille</td>\n";
echo "\t</tr>\n"
}
echo "</table>\n";
  Réponse avec citation
Vieux 19/07/2007, 22h54   #3
Thief13
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: tableau a plusieurs cellucles

>
> 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
  Réponse avec citation
Vieux 19/07/2007, 22h54   #4
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: tableau a plusieurs cellucles

Le 19/07/2007 19:58, Pascal a écrit :
>
> 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 "<tr><td>" . $nom . "</td></tr>";
> }
> 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 "\t\t<td>$nom</td>\n";
echo "\t\t<td>$groupe</td>\n";
echo "\t\t<td>$taille</td>\n";
echo "\t</tr>\n"
}
echo "</table>\n";
  Réponse avec citation
Vieux 20/07/2007, 00h14   #5
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: tableau a plusieurs cellucles

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 "\t\t<td>$nom</td>\n";
> echo "\t\t<td>$groupe</td>\n";
> echo "\t\t<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 "\t\t<td>$nom</td>\n";
}
echo "\t</tr>\n"
}
echo "</table>\n";
  Réponse avec citation
Vieux 20/07/2007, 00h14   #6
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: tableau a plusieurs cellucles

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 "\t\t<td>$nom</td>\n";
> echo "\t\t<td>$groupe</td>\n";
> echo "\t\t<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 "\t\t<td>$nom</td>\n";
}
echo "\t</tr>\n"
}
echo "</table>\n";
  Réponse avec citation
Vieux 20/07/2007, 10h31   #7
Pascal
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: tableau a plusieurs cellucles

> 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 ;-)
  Réponse avec citation
Vieux 20/07/2007, 10h31   #8
Pascal
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: tableau a plusieurs cellucles

> 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 ;-)
  Réponse avec citation
Vieux 20/07/2007, 10h45   #9
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: tableau a plusieurs cellucles

Le 20/07/2007 11:31, Pascal a écrit :
>
> ç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 "\t\t<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.)
  Réponse avec citation
Vieux 20/07/2007, 10h45   #10
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: tableau a plusieurs cellucles

Le 20/07/2007 11:31, Pascal a écrit :
>
> ç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 "\t\t<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.)
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 23h07.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 4,12211 seconds with 18 queries