FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

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

#1 18-01-2021 14:36:33

conil26
Membre
Lieu : Gap
Inscription : 12-03-2019
Messages : 37
Site Web

[Résolu] Regrouper les messages sans réponse

Bonjour,

Y a-t-il moyen d'extraire en csv les messages n'ayant trouvé aucune réponse, afin de les publier dans une revue dans la rubrique Questions/Réponses ?
Merci


Merci
Conil26
FluxBB 1.5.11
http://forum.cgmp-provence.org/

Hors ligne

#2 18-01-2021 18:51:27

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : [Résolu] Regrouper les messages sans réponse

Bonjour,

Comment peut-on mener une recherche ?

On regarde un peu les liens sur la page index du forum et on peut voir que le lien pour Sans réponse est :

http://fluxbb.fr/forums/search.php?action=show_unanswered

ensuite, on va voir le code du fichier search.php si action = show_unanswered et on peut voir :

			// If it's a search for unanswered posts
			else
			{
				$result = $db->query('SELECT t.id FROM '.$db->prefix.'topics AS t LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=t.forum_id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.num_replies=0 AND t.moved_to IS NULL ORDER BY t.last_post DESC') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
				$num_hits = $db->num_rows($result);

				if (!$num_hits)
					message($lang_search['No unanswered']);
			}

En requête simplifiée SQL, ça donne (J'ai supprimé le LEFT JOIN et autres qui ne sert que pour les permissions)

SELECT t.id FROM fluxbb_topics AS t
WHERE t.num_replies=0 AND t.moved_to IS NULL
ORDER BY t.last_post DESC

Le résultat donne les t_id de la table fluxbb_topics pour lesquels il n'y a pas eu de réponse.
Dans la même table, le champ 'first_post_id' correspond pour la table fluxbb_posts à l'id' du champ 'message' auquel il n'a pas été répondu.

Il faut donc aller chercher les champs 'message' de la table fluxbb_posts qui correspondent aux 'id' du résultat de la requête précédente, puis exporter ce nouveau résultat dans un fichier csv.

Je vais continuer... un peu plus tard....


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#3 18-01-2021 19:10:46

conil26
Membre
Lieu : Gap
Inscription : 12-03-2019
Messages : 37
Site Web

Re : [Résolu] Regrouper les messages sans réponse

Re,

J'étais en train de tenter

SELECT T.id, T.forum_id, T.subject, P.message, T.poster 
FROM flux_topics AS T 
JOIN flux_posts AS P ON T.id = P.topic_id 
WHERE T.num_replies = 0

Mais ça ne marche pas.


Merci
Conil26
FluxBB 1.5.11
http://forum.cgmp-provence.org/

Hors ligne

#4 18-01-2021 19:15:30

conil26
Membre
Lieu : Gap
Inscription : 12-03-2019
Messages : 37
Site Web

Re : [Résolu] Regrouper les messages sans réponse

En mixant les 2, j'obtiens ce que je cherche

SELECT T.id, T.forum_id, T.subject, P.message, T.poster 
FROM flux_topics AS T, flux_posts AS P 
WHERE T.num_replies = 0 AND T.moved_to IS NULL 
ORDER BY T.last_post DESC

Merci


Merci
Conil26
FluxBB 1.5.11
http://forum.cgmp-provence.org/

Hors ligne

#5 18-01-2021 19:15:38

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : [Résolu] Regrouper les messages sans réponse

Bonjour,

SELECT p.message
FROM fluxbb_posts AS p
WHERE p.id IN (SELECT t.id FROM fluxbb_topics AS t WHERE t.num_replies=0 AND t.moved_to IS NULL)
ORDER BY p.posted DESC

Dans l'onglet SQL de PhpMyAdmin et ensuite en bas de page du resultat :
Opérations sur les résultats de la requête : Exporter et choisir le format CSV.


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#6 18-01-2021 19:26:02

conil26
Membre
Lieu : Gap
Inscription : 12-03-2019
Messages : 37
Site Web

Re : [Résolu] Regrouper les messages sans réponse

Otomatic a écrit :

Bonjour,

SELECT p.message
FROM fluxbb_posts AS p
WHERE p.id IN (SELECT t.id FROM fluxbb_topics AS t WHERE t.num_replies=0 AND t.moved_to IS NULL)
ORDER BY p.posted DESC

Dans l'onglet SQL de PhpMyAdmin et ensuite en bas de page du resultat :
Opérations sur les résultats de la requête : Exporter et choisir le format CSV.

Cette requête trouve le dernier message de chaque fil : c'est donc une dernière réponse.

Or ce que je cherche c'est le 1° message d'un fil sans réponse.
Merci


Merci
Conil26
FluxBB 1.5.11
http://forum.cgmp-provence.org/

Hors ligne

#7 18-01-2021 19:34:52

conil26
Membre
Lieu : Gap
Inscription : 12-03-2019
Messages : 37
Site Web

Re : [Résolu] Regrouper les messages sans réponse

Je pense avoir trouvé ce qui me convient

SELECT T.id, T.forum_id, T.subject, P.message, T.poster 
FROM flux_topics AS T JOIN flux_posts AS P 
ON T.id = P.topic_id 
WHERE T.num_replies = 0 AND T.moved_to IS NULL 
ORDER BY `T`.`id` DESC

Merci
Conil26
FluxBB 1.5.11
http://forum.cgmp-provence.org/

Hors ligne

Pied de page des forums