8792 sujets

Développement web côté serveur, CMS

J'aimerais afficher les champs d'une table sur trois colonnes (en php). Il faudrait donc que je divise ce contenu par trois pour savoir combien de champs afficher dans chaque colonnes (les colonnes se redimentsionnent selon le contenu). Tout en pensant à gerer le reste eventuel de la division...

Je ne peux pas, helas, afficher de code puisque je ne sais pas comment l'ecrire...

Merci à tous ceux qui vont plancher dessus...
Smiley biggrin
Modifié par tely22 (02 Apr 2006 - 12:47)
J'ai trouvé le début... Logiquement le reste ne devrait pas être bien difficile...


$sql31 = 'SELECT COUNT(GENRE_NOM) AS nbgenre FROM GENRE ORDER BY GENRE_NOM';
$req31 = mysql_query($sql31) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data31 = mysql_fetch_assoc($req31);

$nbgenre= $data31[nbgenre];

$division=$nbgenre/3;  

$entier=intval(abs($division)); 

$reste=$nbgenre%3;  

echo $division.'<br>';
echo $entier.'<br>';
echo $reste;

if ($reste==1){
$col1 = $entier+1;
$col2 = $entier;
$col3 = $entier;
}
else if($reste==2)
{
$col1 = $entier+1;
$col2 = $entier+1;
$col3 = $entier;
}
else 
{
$col1 = $entier;
$col2 = $entier;
$col3 = $entier;
}

echo $col1.'<br>';
echo $col2.'<br>';
echo $col3;


N'hesitez pas a me faire part de vos remarques si vous trouvez mieux et moins laborieux !!
Bon hé bien merci a moi meme... Je me suis bien aidé... Je dois avouer que le code n'est pas des plus pertinent... mais ça marche. Smiley biggrin


$sql3 = 'SELECT * FROM GENRE ORDER BY GENRE_NOM';
$req3 = mysql_query($sql3) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($data3 = mysql_fetch_assoc($req3))
{
$nomgenre[]=$data3[GENRE_NOM];
};

$sql31 = 'SELECT COUNT(GENRE_NOM) AS nbgenre FROM GENRE ORDER BY GENRE_NOM';
$req31 = mysql_query($sql31) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data31 = mysql_fetch_assoc($req31);

$nbgenre= $data31[nbgenre];
$division=$nbgenre/3;  
$entier=intval(abs($division)); 
$reste=$nbgenre%3;  

if ($reste==1){
$col1 = $entier+1;
$col2 = $entier+$col1;
$col3 = $entier+$col1+$col2;
}
else if($reste==2)
{
$col1 = $entier+1;
$col2 = $entier+$col1+1;
$col3 = $entier+$col1+$col2;
}
else 
{
$col1 = $entier;
$col2 = $entier+$col1;
$col3 = $entier+$col1+$col2;
}


$i=0;
while ($i != $col1)
{
	echo $nomgenre[$i].'<br>';
$i++;
};

$j=$col1;
while ($j != $col2)
{
	echo $nomgenre[$j].'<br>';
$j++;
};

$k=$col2;
while ($k != $col3)
{
	echo $nomgenre[$k].'<br>';
$k++;
};
petite rectification :

if ($reste==1){
$col1 = $entier+1;
$col2 = $entier*2+1;
$col3 = $entier*3+1;
}
else if($reste==2)
{
$col1 = $entier+1;
$col2 = $entier*2+2;
$col3 = $entier*3+2;
}
else 
{
$col1 = $entier;
$col2 = $entier*2;
$col3 = $entier*3;
}
oui effectivement mais j'utilise le modulo :

$reste=$nbgenre%3;


C'est juste que je le stock dans ma variable, et je reconnais que ce n'est pas une étape des plus utile.

Smiley smile