Requête mysql ou comparaison de tableaux php ?

Signaler
Messages postés
16
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
3 décembre 2013
-
Messages postés
16
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
3 décembre 2013
-
Bonjour à tous,

voici mon problème :

je développe un site de recettes de cuisine ; pour faire simple, j'ai une table de recettes 'recettes' (id_recette,nom_recette etc), une table de mots-clef 'tags_recette' (id_tag,nom_tag) et une table de relations entre les recettes et mots-clef 'tags_recette_assoc' (tags_assoc_id,tag_id,tag_recette) où tag_id se réfère à id_tag et tag_recette à id_recette.

Lorsque j'affiche la page d'une recette, j'aimerais proposer uniquement 3 recettes similaires à la fin, tant qu'à faire celles qui ont le plus de tags en commun avec elle.

Comment dois-je m'y prendre ? Requête(s) mysql ou comparaisons de tableaux php ? Avec mon peu de pratique je comptais mettre les tag_id correspondant à la recette en question dans un tableau, puis dans une boucle sur toutes les autres recettes de la table mettre les tags correspondants dans un tableau et comparer les tableaux avec un truc du genre array_values(array_intersect)), mais j'imagine que ça mange de la ressource non ? Sachant qu'il y a déjà beaucoup de requêtes dans l'affichage de cette page...

Merci pour votre aide !

2 réponses

Messages postés
29198
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 août 2020
335
Bonjour.
Je pense que tu peux t'orienter vers quelque chose comme ça :

http://stackoverflow.com/questions/18019976/mysql-php-find-similar-related-items-by-tag-taxonomy
Messages postés
16
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
3 décembre 2013

Salut,

merci pour ta réponse. J'ai trouvé une réponse (voir ce forum : http://www.developpez.net/forums/d1396168/php/langage/debuter/requete-mysql-comparaisons-tableaux-php/#post7593404) mais ce qui est intéressant dans le lien que tu donnes c'est cet indice de Jaccard, qui donne une meilleure pertinence des résultats : dans ma requête je ne prends que les recettes qui ont le plus de tags communs avec la recette affichée, tandis que l'indice de Jaccard prend le nombre de tags en commun divisé par le nombre total de tags de la recette comparée, ce qui est beaucoup plus pertinent.

Je poste la réponse dès que j'ai trouvé la bonne requête !