8768 sujets

Développement web côté serveur, CMS

Bonjour,

j'ai un problème assez simple mais qui me prend la tête : comment mettre en place la condition "Si aucun membre en ligne, on affiche 0" dans mon cas?

Actuellement, le reste fonctionne correctement : si des membres sont en ligne ça affiche bien leur pseudo.

Merci de votre aide..!

//Décompte des membres
$texte_a_afficher = "<br />Online members : ";
$time_max = time() - (60 * 5);
$query=$db->prepare('SELECT membre_id, membre_pseudo
FROM forum_whosonline
LEFT JOIN forum_membres ON online_id = membre_id
WHERE online_time > :timemax AND online_id <> 0');
$query->bindValue(':timemax',$time_max, PDO: [langue]ARAM_INT);
$query->execute();
$count_membres=0;
 
 
while ($data = $query->fetch())
{
    $count_membres ++;
    if (empty($data['online_id'])) echo $texte_a_afficher .= '0';
    else $texte_a_afficher .= '<a href="./voirprofil.php?m='.$data['membre_id'].'&amp;action=consulter">
    '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a> ,';
}
la même chose, mais sans le echo déjà ?

Sinon, si je comprends bien ton while, ça devrait être l'inverse

si y a personne, tu dis qu'il y a personne
sinon, tu boucles pour savoir qui il y a.
solution finalement trouvée!!
Merci pour ton aide Lothindil!

//Décompte des membres
$texte_a_afficher = "<br /><img src='./images/member.png' class='icon_footer' alt='Online Members' />Online members : ";
$time_max = time() - (60 * 5);
$query=$db->prepare('SELECT membre_id, membre_pseudo 
FROM forum_whosonline
LEFT JOIN forum_membres ON online_id = membre_id
WHERE online_time > :timemax AND online_id <> 0');
$query->bindValue(':timemax',$time_max, PDO: [langue]ARAM_INT);
$query->execute();
$count_membres=0;


if ($data = $query->fetch())
{
    $count_membres ++;
     $texte_a_afficher .= '<a href="./voirprofil.php?m='.$data['membre_id'].'&amp;action=consulter">
    '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a> ,';
}
else
{
    $texte_a_afficher .= '0,';
} 
Ta solution ne marche que si tu n'as qu'une personne ^^ il te faut utiliser la fonction http://php.net/manual/fr/pdostatement.rowcount.php

if(0 == $query->rowCount())
{
    //code si y a personne
}
else
{
     while ($data = $query->fetch()) //boucle qui parcours les gens
     {
          //code des personnes
      }
} 


et si tu veux, tu peux même sortir le rowCount du test pour t'en servir dans la 2ème fonction pour afficher combien il a de personnes
Lothindil a écrit :
Ta solution ne marche que si tu n'as qu'une personne ^^ il te faut utiliser la fonction http://php.net/manual/fr/pdostatement.rowcount.php

if(0 == $query-&gt;rowCount())
{
    //code si y a personne
}
else
{
     while ($data = $query-&gt;fetch()) //boucle qui parcours les gens
     {
          //code des personnes
      }
} 


et si tu veux, tu peux même sortir le rowCount du test pour t'en servir dans la 2ème fonction pour afficher combien il a de personnes


Merci bcp je connaissais pas rowCount avant,
et bon anniversaire !!!!! si c'est vraiment ton anniversaire Smiley lol