[RESOLU] Afficher derniers commentaires sur l'accueil d'un site

Eléphant du PHP | 53 Messages

07 mars 2019, 18:20

Bonjour à tous(tes)

Je voulais un petit tableau sur l'accueil de mon site qui montre en défilement les derniers commentaires des membres. On voit ce genre de truc sur la plupart des forums. J'y ai travaillé inlassablement durant trois jours et je suis parvenu à avoir exactement ce que je voulais ... à un détail près.

J'explique ce qui m'arrive.
J'ai cinq tables dans ma base de données à partir desquelles les membres peuvent publier des commentaires: articles, poésies, devinettes, recit1 et recit2. Elles n'ont aucun lien entre elles excepté faire partie de la même base de données.
Pour ne pas compliquer les choses je me suis borné à soutirer seulement les deux derniers commentaires de chacune des tables avec une requête SELECT. Ensuite j'ai créé une page distincte avec cinq requêtes, une pour chaque table. Je l'ai testée et tout a fonctionné. Je l'ai donc placée en "include()" à l'endroit où je la voulais dans ma page d'accueil. J'obtins un excellent résultat mais quand j'ai publié un nouveau message pour faire un test, je me suis rendu compte qu'il n'apparaissait pas en tête de liste mais à la même position que la requête dans ma page de requêtes. Par exemple si je faisais un commentaire dans "devinettes", il apparassait en troisième position et non en tête de liste.

Je n'ai pas pu résoudre le problème et j'ai rendu les armes car mes compétences sont largement dépassées à ce stade. Je me retrouve donc dans la situation du voyageur qui fait fausse route et s'en rend compte trois jours plus tard.

Je me demandais si l'un(e) d'entre vous connaït un tutoriel qui puisse m'orienter dans la bonne direction car je n'ai rien trouvé. Je ne veux pas de plugins ou widgets à installer. Le flux RSS ne me semble pas adapté non plus pour ce genre de module. Bref, je suis à court d'idées.

Merci infiniment et bonne fin de journée.
Pourquoi faire simple quand on peut faire compliqué ?

Mammouth du PHP | 2703 Messages

07 mars 2019, 20:27

il faut trier les données des différentes tables une fois qu'elles sont regroupées. avec http://php.net/manual/fr/function.uasort.php par exemple.

mais le problème vient probablement de la structure de la base de données. je doute qu'avoir 5 tables soit la bonne solution.

Eléphant du PHP | 53 Messages

07 mars 2019, 21:16

Merci de ta réponse or1. Comme tu suggères, il va sûrement falloir modifier ma base de données pour regrouper ces rubriques.
J'avais fouiné par ci par là pour savoir si on pouvait faire un SELECT sur la base elle-même plutôt que sur les tables mais les techniques proposées me donnent la chair de poule.

Je vais plutôt tenter l'approche du regroupement des rubriques et si je n'y arrive pas, eh bien je vais tout bonnement mettre l'idée en veille prolongée. J'avais pensé qu'un petit tableau de mises à jour remplirait bien ce coin vide sur ma page d'accueil mais je ne veux pas en faire une obsession. Pour autant je n'abandonne pas l'idée complètement.

a+
Pourquoi faire simple quand on peut faire compliqué ?

Eléphant du PHP | 53 Messages

11 mars 2019, 06:22

Hello
Voilà, j'y suis parvenu mais je n'explique pas comment j'ai fait car ce n'est pas très professionnel. Le lien du commentaire vers le titre m'a obligé à faire des acrobaties. Mais ça fonctionne. J'ai à présent un beau petit tableau qui déroule gentiment les derniers commentaires, liens inclus. Que demander de plus ??
a+
Bonne semaine
Pourquoi faire simple quand on peut faire compliqué ?