Fixer largeur menu PHP

Limehit
Invité n'ayant pas de compte PHPfrance

18 août 2012, 11:42

Bonjour à tous, alors voilà, je fais un menu en PHP qui sélectionne les catégories dans une base de données et s'affiche selon une visibilité

Je voulais demander si je pouvais faire ça :
while ($d = mysql_fetch_assoc($menu))
{
$allowDisplay = true;
switch ($d['visibility'])
{
case 1 : break;

case 0: $allowdisplay = false;

// eTC
}

$i = 0;

while ($allowDisplay) 
{ 
  $i++;
}

$width = '140' * $i;

echo '<style>div#menu ul { width: ' . $width . ' }</style>';
}

En clair, je voudrais incrémenter la valeur $i pour compter le nombre de fois que allowDisplay est en true

Eléphant du PHP | 190 Messages

18 août 2012, 13:46

Salut,

C'est une solution comme une autre mais il y'a beaucoup plus simple.
$i=0;
while ($d = mysql_fetch_assoc($menu)){
     if($d['visibility'] == 1){
          $i++;
          $width = '140' * $i;
          echo '<style>div#menu ul { width: ' . $width . ' }</style>';
     }
}
Edit, après reflexion, ce que tu veux faire est tout autre, ton affichage doit se faire en dehors de la boucle donc:
$i=0;
while ($d = mysql_fetch_assoc($menu)){
     if($d['visibility'] == 1){
          $i++;
     }
}
$width = '140' * $i;
echo '<style>div#menu ul { width: ' . $width . ' }</style>';
Mais si tu veux juste récupérer un compteur sans aucune ligne, c'est au niveau de la requete SQL que tu dois jouer avec COUNT(*).