Spols, je ne suis pas connecté durant mes tests donc je tombe de toute manière dans le else :
else
{
$ico_mess = $data2['forum_icon_non_lu'];
}
Mazarini, j'ai une image lu et une non lu pour chaque forum.
Récapitulons :
- J'ai une image 'lu' et une 'non lu' pour chaque forum.
- Je fait mes tests non connecté et pourtant l'image affichée est une 'non lu' (colorée, les 'lu' étant en niveaux de gris)
- Mon problème est que ça m'affiche la même pour chaque.
- Mes tests démontrent que la boucle ($ico_mess = $data2['forum_icon_non_lu']

me sort bien un array contenant toutes les chemins des images.
- Mes tests démontrent également que l'echo (echo $ico_mess;) renvoie toujours la même image.
- Conclusion personnelle : le problème se situe entre le calcul de l'image ($ico_mess = $data2['forum_icon_non_lu']

et l'affichage de chacune (echo $ico_mess;)
Capture du bug :
Dernier Code :
<?php
$query=$db1->prepare('SELECT cat_id, cat_nom,
forum_forum.forum_id, forum_name, forum_desc, forum_post, forum_topic, auth_view, forum_topic.topic_id, forum_topic.topic_post, post_id, post_time, post_createur, membre_pseudo,
membre_id
FROM forum_categorie
LEFT JOIN forum_forum ON forum_categorie.cat_id = forum_forum.forum_cat_id
LEFT JOIN forum_post ON forum_post.post_id = forum_forum.forum_last_post_id
LEFT JOIN forum_topic ON forum_topic.topic_id = forum_post.topic_id
LEFT JOIN forum_membres ON forum_membres.membre_id = forum_post.post_createur
WHERE auth_view <= :lvl
ORDER BY cat_ordre, forum_ordre DESC');
$query->bindValue(':lvl',$lvl,PDO::PARAM_INT);
$query->execute();
$query2=$db1->prepare('SELECT forum_icon_lu, forum_icon_non_lu
FROM forum_forum');
$query2->execute();
while ($data2 = $query2 -> fetch())
{
?>
<center><table>
<?php
//Début de la boucle
while($data = $query->fetch())
{
//On affiche chaque catégorie
if( $categorie != $data['cat_id'] )
{
//Si c'est une nouvelle catégorie on l'affiche
$categorie = $data['cat_id'];
?>
<tr>
<th></th>
<th class="titre"><strong>
<?php
echo stripslashes(htmlspecialchars($data['cat_nom']));
?>
</strong></th>
<th class="nombremessages"><strong>Sujets</strong></th>
<th class="nombresujets"><strong>Messages</strong></th>
<th class="derniermessage"><strong>Dernier message</strong></th>
</tr>
<?php
}
//Ici, on met le contenu de chaque catégorie
// Ce super echo de la mort affiche tous
// les forums en détail : description, nombre de réponses etc...
//echo'<tr><td><img src="./images/message.gif" alt="message" /></td>
echo'<tr><td class="lunonlu"><img src="./images/forum/';
//Gestion de l'image à afficher
if (!empty($id)) // Si le membre est connecté
{
if ($data['tv_id'] == $id) //S'il a lu le topic
{
if ($data['tv_poste'] == '0') // S'il n'a pas posté
{
if ($data['tv_post_id'] == $data['topic_last_post']) //S'il n'y a pas de nouveau message
{
$ico_mess = $data2['forum_icon_lu'];
}
else
{
$ico_mess = $data2['forum_icon_non_lu']; //S'il y a un nouveau message
}
}
else // S'il a posté
{
if ($data['tv_post_id'] == $data['topic_last_post']) //S'il n'y a pas de nouveau message
{
$ico_mess = $data2['forum_icon_lu'];
}
else //S'il y a un nouveau message
{
$ico_mess = $data2['forum_icon_non_lu'];
}
}
}
else //S'il n'a pas lu le topic
{
$ico_mess = $data2['forum_icon_non_lu'];
}
} //S'il n'est pas connecté
else
{
$ico_mess = $data2['forum_icon_non_lu'];
}
echo $ico_mess;
echo '" alt="message" /></td>
<td class="titre"><strong>
<a class="lien" href="./voirforum.php?f='.$data['forum_id'].'">
'.stripslashes(htmlspecialchars($data['forum_name'])).'</a></strong>
<br />'.nl2br(stripslashes(htmlspecialchars($data['forum_desc']))).'</td>
<td class="nombresujets">'.$data['forum_topic'].'</td>
<td class="nombremessages">'.$data['forum_post'].'</td>';
// Deux cas possibles :
// Soit il y a un nouveau message, soit le forum est vide
if (!empty($data['forum_post']))
{
//Selection dernier message
$nombreDeMessagesParPage = 15;
$nbr_post = $data['topic_post'] +1;
$page = ceil($nbr_post / $nombreDeMessagesParPage);
echo'<td class="derniermessage">
'.date('H\hi \l\e d/M/Y',$data['post_time']).'<br />
<a class="lien" href="./voirprofil.php?m='.stripslashes(htmlspecialchars($data['membre_id'])).'&action=consulter">'.$data['membre_pseudo'].' </a>
<a class="lien" href="./voirtopic.php?t='.$data['topic_id'].'&page='.$page.'#p_'.$data['post_id'].'">
<img src="./images/forum/go.gif" alt="go" /></a></td></tr>';
/*<img src="./images/go.gif" alt="go" /></a></td></tr>';*/
}
else
{
echo '<td class="nombremessages">Pas de message</td></tr>';
}
//Cette variable stock le nombre de messages, on la met à jour
$totaldesmessages += $data['forum_post'];
//On ferme notre boucle et nos balises
} //fin de la boucle
} // fin du while ($data2 = $query2 -> fetch())
$query->CloseCursor();
$query2->CloseCursor();
echo '</table></center><br /><br />';