par
Cyrano » 02 août 2005, 09:26
Mouais, sauf que les résultats n'apparaîtront pas come indiqué au départ et on aura donc :
com1 com2
com3 com4
com5 com6
etc...
Et si le nombre est impair, il manquera une cellule dans le tableau.
Voici une proposition pour un affichage :
com1 com4
com2 com5
com3 com6
<?
$requete = "select id_com, nom_com from commissions";
$result = mysql_query($requete);
/* On commence par compter le nombre de résultats obtenus. */
$nb_com = mysql_num_rows($result);
/* On vérifie que le résutat est un nombre pair ou impair */
$pair = $nb_com % 2 == 0 ? true : false;
/*
Pour obtenir un affichage sur deux colonnes de hauteur similaire, on
divise ce résultat par deux (arrondi à l'entier supérieur si le nombre
de résultats est impair)
*/
$nb_lignes = ceil($nb_com/2);
/* On récupère le résutat de la requête dans deux tableau indexé */
$id_com = array();
$nom_com = array();
while($commission = mysql_fetch_array($result))
{
array_push($id_com, $commission['id_com']);
array_push($nom_com, $commission['nom_com']);
}
?>
<table summary="">
<?php
/* À ce stade, on connait le nombre de commission, dnonc le nombre de lignes, il reste à construire le tableau */
for($i = 0; $i < $nb_lignes; $i++)
{
$j = $i * 2;
?>
<tr>
<td class="redaction"><a href="index.php?page=55&menu=2&id=<?php echo($id_com[$i]); ?>"><?php echo($nom_com[$i]); ?></a></td>
<?php
/* Si on arrive à la dernière ligne du tableau on vérifie que le nombre est pair ou
impair pour afficher de toutes façon une cellule avec un contenu ou un espace
insécable si ce contenu n'existe pas */
if($i == ($nb_lignes - 1))
{
?>
<td class="redaction"><?php echo($pair ? "<a href=\"index.php?page=55&menu=2&id=". $id_com[$j] ."\">". $nom_com[$j] ."</a>" : " "); ?></td>
<?php
}
/* On est pas encore à la dernière ligne, afichage normal */
else
{
?>
<td class="redaction"><a href="index.php?page=55&menu=2&id=<?php echo($id_com[$j]); ?>"><?php echo($nom_com[$j]); ?></a></td>
<?php
}
?>
</tr>
<?php
}
?>
</table>
Un peu plus compliqué

mais ^ca devrait fonctionner très bien: si le nombre de résultats est impair, la dernière cellule sera à quand même avec un " " dedans et le nombre de com sera réparti sur deux colonnes, première colonne d'abord 1, 3, 5, 7 etc... et colonne 2 ensuite 2, 4, 6, etc...
Mouais, sauf que les résultats n'apparaîtront pas come indiqué au départ et on aura donc :
com1 com2
com3 com4
com5 com6
etc...
Et si le nombre est impair, il manquera une cellule dans le tableau.
Voici une proposition pour un affichage :
com1 com4
com2 com5
com3 com6
[php]<?
$requete = "select id_com, nom_com from commissions";
$result = mysql_query($requete);
/* On commence par compter le nombre de résultats obtenus. */
$nb_com = mysql_num_rows($result);
/* On vérifie que le résutat est un nombre pair ou impair */
$pair = $nb_com % 2 == 0 ? true : false;
/*
Pour obtenir un affichage sur deux colonnes de hauteur similaire, on
divise ce résultat par deux (arrondi à l'entier supérieur si le nombre
de résultats est impair)
*/
$nb_lignes = ceil($nb_com/2);
/* On récupère le résutat de la requête dans deux tableau indexé */
$id_com = array();
$nom_com = array();
while($commission = mysql_fetch_array($result))
{
array_push($id_com, $commission['id_com']);
array_push($nom_com, $commission['nom_com']);
}
?>
<table summary="">
<?php
/* À ce stade, on connait le nombre de commission, dnonc le nombre de lignes, il reste à construire le tableau */
for($i = 0; $i < $nb_lignes; $i++)
{
$j = $i * 2;
?>
<tr>
<td class="redaction"><a href="index.php?page=55&menu=2&id=<?php echo($id_com[$i]); ?>"><?php echo($nom_com[$i]); ?></a></td>
<?php
/* Si on arrive à la dernière ligne du tableau on vérifie que le nombre est pair ou
impair pour afficher de toutes façon une cellule avec un contenu ou un espace
insécable si ce contenu n'existe pas */
if($i == ($nb_lignes - 1))
{
?>
<td class="redaction"><?php echo($pair ? "<a href=\"index.php?page=55&menu=2&id=". $id_com[$j] ."\">". $nom_com[$j] ."</a>" : " "); ?></td>
<?php
}
/* On est pas encore à la dernière ligne, afichage normal */
else
{
?>
<td class="redaction"><a href="index.php?page=55&menu=2&id=<?php echo($id_com[$j]); ?>"><?php echo($nom_com[$j]); ?></a></td>
<?php
}
?>
</tr>
<?php
}
?>
</table>[/php]
Un peu plus compliqué ;) mais ^ca devrait fonctionner très bien: si le nombre de résultats est impair, la dernière cellule sera à quand même avec un " " dedans et le nombre de com sera réparti sur deux colonnes, première colonne d'abord 1, 3, 5, 7 etc... et colonne 2 ensuite 2, 4, 6, etc...