par
AB » 10 déc. 2008, 19:10
Sinon tu peux enregistrer le résultat de ta requête dans un tableau, réordonner les éléments du tableau, puis afficher le résultat.
//D'après ton exemple le tableau qui enregistre le résultat de ta requête sera
$tab = array( 0 => 1, 1 => 2, 2 => 3, 3 => 4, 4 => 5, 5 => 6, 6 => 7, 7 => 8, 8 => 9, 9 => 10, 10 => 11, 11 => 12 );
//Pour un nombre de colonnes fixes tu peux faire
$nb_colonne = 3;
$nb_lignes = ceil(count($tab)/$nb_colonne);
for ($i = 0; $i < $nb_lignes ; $i++)
{
$incr = $i;
for($j = 0 ; $j < $nb_colonne ; $j++)
{
if (isset($tab[$incr])){$temp[] = $tab[$incr]; $incr += $nb_lignes;} else $temp[] = null;
}
}
// Il ne te reste plus qu'à lister le tableau $temp qui est réordonné comme dans ton exemple
ça marche dans la mesure du possible, c'est à dire que cette technique rempli le tableau sans créer de trous, excepté pour les derniers éléments de la colonne de droite . Donc pour un tableau de 12 éléments tu ne pourras pas avoir 5 colonnes puisqu'il faut minimum trois lignes et donc 4 colonnes suffiront.
Il faut considérer le nombre de colonnes spécifié comme un nombre maximum.
Sinon tu peux enregistrer le résultat de ta requête dans un tableau, réordonner les éléments du tableau, puis afficher le résultat.
[php]//D'après ton exemple le tableau qui enregistre le résultat de ta requête sera
$tab = array( 0 => 1, 1 => 2, 2 => 3, 3 => 4, 4 => 5, 5 => 6, 6 => 7, 7 => 8, 8 => 9, 9 => 10, 10 => 11, 11 => 12 );
//Pour un nombre de colonnes fixes tu peux faire
$nb_colonne = 3;
$nb_lignes = ceil(count($tab)/$nb_colonne);
for ($i = 0; $i < $nb_lignes ; $i++)
{
$incr = $i;
for($j = 0 ; $j < $nb_colonne ; $j++)
{
if (isset($tab[$incr])){$temp[] = $tab[$incr]; $incr += $nb_lignes;} else $temp[] = null;
}
}
// Il ne te reste plus qu'à lister le tableau $temp qui est réordonné comme dans ton exemple[/php]
ça marche dans la mesure du possible, c'est à dire que cette technique rempli le tableau sans créer de trous, excepté pour les derniers éléments de la colonne de droite . Donc pour un tableau de 12 éléments tu ne pourras pas avoir 5 colonnes puisqu'il faut minimum trois lignes et donc 4 colonnes suffiront.
Il faut considérer le nombre de colonnes spécifié comme un nombre maximum.