Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 23-03-2009 15:46:39

colletaphoto
Membre

extraire les derniers topics visibles

Hello, Vous avez le bonjour de colletaphoto.


J'aimerai mettre sur la page d'index du site un affichage des 10 derniers topics du forum:

j'ai un fait un
SELECT *
FROM table_topics

mais dans ce cas, le topics des forums non accessibles aux non connectés apparaissent...

Vous feriez comment pour éviter cet inconvéniant?
Je pense qu'il faut tenir compte de la table table_forum_perms... avec un truc du genre "where group_id = 3" mais je sais pas trop comment faire... j'ai l'impression qu'il faut faire une soustraction, et la mon petit cerveau nage un peu...

merci d'avance

Hors ligne

#2 23-03-2009 15:57:44

colletaphoto
Membre

Re : extraire les derniers topics visibles

En fait, il faudrait que j'arrive je croix à écrire en mysql la chose suivante:

"
Select *
From table_topics

- (moins)

Select *
From table_topics, table_forum_perms
Where table_topics.forum_id = table_forum_perms.forum_id
And group_id=3

"

Suis-je claire? (c'est pas sur du tout)

merci d'avance

Hors ligne

#3 23-03-2009 16:22:26

Mpok
Néo Admin

Re : extraire les derniers topics visibles

colletaphoto a écrit :

Je pense qu'il faut tenir compte de la table table_forum_perms... avec un truc du genre "where group_id = 3" mais je sais pas trop comment faire... j'ai l'impression qu'il faut faire une soustraction

Oui, tout à fait...
On va se servir de la variable $pun_user['g_id'], puisque les permissions de forum_perms sont par groupe.

Il faut donc inclure "common.php" pour avoir accès aux fonctions et variables de FluxBB sur la page en question.
(note : le cas "where group_id=3" n'est qu'un cas particulier..., là on veut que cela soit valable dans tous les cas).

Et cela donne (avec la syntaxe propre de FluxBB) :

$result = $db->query('SELECT * FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1)') or error('Impossible de retrouver la liste des discussions', __FILE__, __LINE__, $db->error());

Hors ligne

#4 23-03-2009 17:16:03

colletaphoto
Membre

Re : extraire les derniers topics visibles

Merci Mpok,


ca marche...sauf que j'arrive pas à ajouter :


ORDER BY id DESC LIMIT 0,80

à la fin de la requete sans que j'ai un message d'erreure

peut-etre faut-il rajouter cela ailleurs?
J'aimerai au moins mettre le tri décroissant


encore merci

Hors ligne

#5 23-03-2009 17:43:01

colletaphoto
Membre

Re : extraire les derniers topics visibles

problème résolu... avec un

ORDER By t.posted DESC LIMIT 0,80

ca marche
merci à Mpok et au forum....

Hors ligne

Pied de page des forums