Nuage de tag en php/mysql

Nuage de tag en php/mysql - PHP - Programmation

Marsh Posté le 22-10-2007 à 15:28:15    

Bonjour,
J’ai une table qui contient 8 champs tags (tag ,tag2, tag3, …). Et j’aimerai faire une nuage de tags qui reprend l’ensemble des tags de la base.
 
J’ai commencé à utiliser ce code que l’on retrouve un peux partout sur internet :
 
define("MIN_SIZE", 9);
define("MAX_SIZE", 36);
 
 
$result = mysql_db_query($sql_bdd,"SELECT tag, count(*) as number FROM matable GROUP BY tag ORDER BY tag" ) or die(mysql_error());
 
$min = MAX_INT;
$max = -MAX_INT;
 
while ($tag = mysql_fetch_assoc($result)) {
    if ($tag['number'] < $min) $min = $tag['number'];
    if ($tag['number'] > $max) $max = $tag['number'];
    $tags[] = $tag;
}
 
$min_size = MIN_SIZE;
$max_size = MAX_SIZE;
 
foreach ($tags as $tag) {
    $tag['size'] = intval($min_size + (($tag['number'] - $min) * (($max_size - $min_size) / ($max - $min))));
    $tags_extended[] = $tag;
}
 
Et pour l'affichage :
 
<?php foreach ($tags_extended as $tag) : ?>
<a href="recherchemusiqueshdtag2.php5?type=tag2&retag=<?php echo $tag['tag']; ?>" style="font-size:<?php echo $tag['size']; ?>px" title="<?php echo $tag['tag']; ?>"><?php echo $tag['tag']; ?></a>
<?php endforeach; ?>
 
Cela fonctionne bien mais uniquement  pour un champ tag. Et j’aimerais avoir la même chose mais sur plusieurs champs tags(tag,tag2, tag3,...).
J’ai bien tenté de modifier le code en faisant « select tag , tag1 …». Mais après mes connaissances en php ne me permettent pas de faire ce que je veux. J’imagine qu’il faut tout mettre dans un tableau puis de travailler sur le tableau mais j'ai des lacunes à ce niveau.
 
Merci d’avance pour votre aide.
 
Chris

Reply

Marsh Posté le 22-10-2007 à 15:28:15   

Reply

Marsh Posté le 22-10-2007 à 16:29:16    

Je vois pas ce que tu attends de nous, là.
Si tu as des lacunes, lis la doc et essaye des choses.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-10-2007 à 16:36:23    

skeye a écrit :

Je vois pas ce que tu attends de nous, là.
Si tu as des lacunes, lis la doc et essaye des choses.


 
En faite, j'attend de vous que vous m'aidiez à modifier ce script pour prendre en compte tous les champs "tag".
 
J'attend votre aide quoi...  :love:  
 
Encore merci d'avance.
 
Chris

Reply

Marsh Posté le 22-10-2007 à 16:38:48    

On ne le fera pas à ta place.
Commence, si tu bloques sur un point précis pose ta question.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-10-2007 à 16:41:47    

t'as structure de table est moldave, ça va pas être facile [:spamafote]
 
Tu as une liason n-n entre tes tags et "tatable" ( un tag peut être présent 1 à N fois dans "tatable", un enregistrement de "tatable" contient 1 à N tags), tu devrais avoir trois tables "tags" "tatable" et une table de liaison entre elles.
 
Donc là t'as plus qu'à faire 8 requêtes ( une par tag1...tag8) et te débrouiller pour réunir tout ça ( sachant qu'un résultat de tag1 peut également être dans tag4 par exemple).

Reply

Marsh Posté le 22-10-2007 à 17:29:13    

anapajari a écrit :

t'as structure de table est moldave, ça va pas être facile [:spamafote]
 
Tu as une liason n-n entre tes tags et "tatable" ( un tag peut être présent 1 à N fois dans "tatable", un enregistrement de "tatable" contient 1 à N tags), tu devrais avoir trois tables "tags" "tatable" et une table de liaison entre elles.
 
Donc là t'as plus qu'à faire 8 requêtes ( une par tag1...tag8) et te débrouiller pour réunir tout ça ( sachant qu'un résultat de tag1 peut également être dans tag4 par exemple).


 
Tout d'abord merci pour ton aide.
 
Je ne vois pas l'utilité d'une table de liaison ? Pourquoi pas un lien direct "matable" vers la table "tags" qui contiendrait (tag1, tag 2,...).
 
Mais je me pose aussi la question de savoir si une simple requete comme en dessous ne suffirait pas  :
 
$result = mysql_db_query($sql_bdd,"SELECT tag, tag2, tag3, tag4, tag5, tag6, tag7, tag8, count(*) as number FROM matable GROUP BY tag, tag2, tag3, tag4, tag5, tag6, tag7, tag8" ) or die(mysql_error());
 
Mais ma grande question étant comme tu le dit de réunir tout ça. J'ai essayer de mettre tout ca dans un tableau, mais je mis perd.  :pt1cable:  
 
Encore merci.
 
Chris
 
 

Reply

Marsh Posté le 22-10-2007 à 17:37:22    

chrisgo_fr a écrit :

Je ne vois pas l'utilité d'une table de liaison ? Pourquoi pas un lien direct "matable" vers la table "tags" qui contiendrait (tag1, tag 2,...).


http://fr.wikipedia.org/wiki/Base_ [...] ationnelle

chrisgo_fr a écrit :


Mais je me pose aussi la question de savoir si une simple requete comme en dessous ne suffirait pas  :
$result = mysql_db_query($sql_bdd,"SELECT tag, tag2, tag3, tag4, tag5, tag6, tag7, tag8, count(*) as number FROM matable GROUP BY tag, tag2, tag3, tag4, tag5, tag6, tag7, tag8" ) or die(mysql_error());


Non ... et tu n'auras pas la moindre idée du pourquoi avant d'avoir compris comment fonctionnent les fonctions d'aggrégation ( genre count).

chrisgo_fr a écrit :


Mais ma grande question étant comme tu le dit de réunir tout ça. J'ai essayer de mettre tout ca dans un tableau, mais je mis perd.  :pt1cable:


C'est ballot :o

Reply

Marsh Posté le 22-10-2007 à 18:00:06    


 
Je suis bien d'accord avec tout ca, mais pourquoi une table liaison ? je m'explique :
 
Je vois bien un lien matable-tabletag mais pas matable-tableliaison-tabletag. On imagine matable à un champs numerointernetag qui pointe sur l'enregistrement de la tabletag qui contient ce numéro interne. Pourquoi mettre une table entre les deux ?
 
Quand tu as une table commande par exemple et une table lignecommande. tu n'a pas de table intermédiare qui lie les deux, elles sont directement lié. Non ?  
 

anapajari a écrit :


Non ... et tu n'auras pas la moindre idée du pourquoi avant d'avoir compris comment fonctionnent les fonctions d'aggrégation ( genre count).


 
Bon d'accord je créé une table tag, voir même une table de liaison, si tu insite. Mais, là n'est pas le problème. Mon problème est de réunir tout sa dans un tableau et de travailler avec. Je sait le faire avec d'autre languages, mais pas en PHP. Je fait un array de $result puis après ?
 
help
 
Merci
 

Reply

Marsh Posté le 22-10-2007 à 18:20:20    

chrisgo_fr a écrit :


Je suis bien d'accord avec tout ca, mais pourquoi une table liaison ? je m'explique :
Je vois bien un lien matable-tabletag mais pas matable-tableliaison-tabletag. On imagine matable à un champs numerointernetag qui pointe sur l'enregistrement de la tabletag qui contient ce numéro interne. Pourquoi mettre une table entre les deux ?
Quand tu as une table commande par exemple et une table lignecommande. tu n'a pas de table intermédiare qui lie les deux, elles sont directement lié. Non ?  


Non :o
Tu as une table commande, une table produit et une table de liaison commande/produit ( que tu peux appeler ligne commande si tu veux).
Le but étant d'éviter d'avoir des informations relatives au produit ( genre son nom) dans ta table "lignecommande".
Ce qui te permet également de faire plus facilement des requêtes sur tes produits.

Reply

Marsh Posté le 22-10-2007 à 18:54:22    

anapajari a écrit :


Non :o
Tu as une table commande, une table produit et une table de liaison commande/produit ( que tu peux appeler ligne commande si tu veux).
Le but étant d'éviter d'avoir des informations relatives au produit ( genre son nom) dans ta table "lignecommande".
Ce qui te permet également de faire plus facilement des requêtes sur tes produits.


 
Je suis d'accord, il y a la table produit et la table ligne commande lie les deux.  :)  
 
Je suis près a revoir m'a structure, il n'y a pas de problème.
 
Mais alors comment feriez vous pour réunir tout ca ?
 
Encore merci d'avance.
 

Reply

Marsh Posté le 22-10-2007 à 18:54:22   

Reply

Marsh Posté le 22-10-2007 à 20:49:37    

Et il se passe quoi le jour où tu veux autoriser un 9ème tag ?  [:zaib3k]


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 22-10-2007 à 21:31:24    

Dj YeLL a écrit :

Et il se passe quoi le jour où tu veux autoriser un 9ème tag ?  [:zaib3k]


 
Bah on rajoute un champ, comme les 7 premières fois :D

Reply

Marsh Posté le 22-10-2007 à 21:52:19    

[smiley-arthur-avec-la-main-sur-le-visage]


Message édité par Dj YeLL le 22-10-2007 à 21:52:26

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 22-10-2007 à 22:28:56    

naceroth a écrit :


 
Bah on rajoute un champ, comme les 7 premières fois :D


 
Je suis tout a fait d'accord avec vous, on ne doit pas faire ce que j'ai fait. j'en rigole d'ailleur car je n'ai pas l'habitude de faire ca.
 
Mais en php je suis nul(et en base de donnée  :) ) et je vous demande votre aide. :??:  
 
En gros, je veux faire un nuage de tag sur une base de recettes culinaires. Des tags comme poivron, périgord, salade... Avec comme condition qu'un enregistrement soit lié à plusieurs tags.
 
Pouvez vous m'aider ?
 
 
 
 
 

Reply

Marsh Posté le 22-10-2007 à 22:45:08    

1 table "tag", avec un champ id et un champ tag (perso je n'ai pas de champ id, le champ tag faisant office d'index)
1 table avec tes recettes (qui doivent chacune avoir un ID)
1 table de liaison avec un "tag_id" et un "recette_id"

 

Exemple :

 

RECETTES :
1 - Pizza jambon fromage

 

TAGS :
1 - olives
2 - saucisson
3 - lait
4 - jambon
5 - yaourt
6 - fromage

 

TAGS_RECETTES :
1 - 1
1 - 4
1 - 6

 

Edit : Pour ton nuage, tu compte le nombre de fois que chaque tag est utilisé. Plus il l'est, plus il est "important"


Message édité par Dj YeLL le 22-10-2007 à 22:45:39

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 22-10-2007 à 22:48:43    

anapajari l'a déjà fait, tu crées une table tags avec deux champs (un identifiant unique et la valeur du tag) et une table de liaison pour passer d'une structure (moi je suis nul en cuisine :D)
 

Citation :


id     recette     tag1     tag2     ...     tag8
------------------------------------------
1      machin     kkwet    bidule           truc


 
à
 

Citation :


id     tag
-----------
2      kkwet
3      bidule
.
.
.
9     truc


 
Donc, une ligne par tag, ta table de liaison contenant autant de lignes pour une recette qu'il n'y a de tags pour la recette (8 tags pour la recette 1 => 8 lignes) avec l'id de la recette et l'id du tag. Tu n'auras plus à te soucier de savoir si la valeur que tu cherches est dans tag1 ou dans tag9654 :)

Reply

Marsh Posté le 22-10-2007 à 23:14:34    


Je n'ai qu'un mot a vous dire : MERCI !!!!!!!!!!!
 
Je vais travailler en suivant vos instructions. Je me permettrai de vous demander votre aide en cas de blocage  :) . Et je mettrai le résultat de mon (votre :-) ) travail pour en faire profiter tout le monde.
 
Encore MERCI !!!!!!!!!
 
Chris

Reply

Marsh Posté le 24-10-2007 à 16:53:10    

Bonjour,
 
Bon je suis bloqué  :) .
 
J'ai fait ce que vous m'avez dit et dans un premier temps, cela marche bien.
 
J'ai une page ou j'ai toutes mes recettes affichées dans une liste (sur plusieurs pages) et un nuage de tag correspondant à toutes mes recettes. Lorsque je clique sur un lien du nuage, je diminu la selection pour n'afficher que les recettes qui contiennent ce tag. Jusque là pas de problème.
 
Ensuite j'aimerais afficher un autre nuage qui recherche uniquement les tags de la selection de recette.
 
en gros j'ai un $recette=mysql($sql_bdd,"SELECT.....)
 
Et j'aimerais faire
 
$result = mysql_db_query($sql_bdd,"SELECT tag, count(*) as number FROM MA SELECTION DE $RECETTE GROUP BY tag" ) .
 
Merci d'avance
 

Reply

Marsh Posté le 24-10-2007 à 18:02:40    

Tu veux sélectionner uniquement la liste des tags présent dans le résultat du 1er filtrage ?
 
Tu récupères la liste des ID des recettes restant après le filtrage, et tu fais un truc du genre (de tête, c'est peut être faux... :D ) :
 

Code :
  1. SELECT tag AS t FROM tags
  2. INNER JOIN recettes_tags AS rt
  3. ON rt.tag_id = t.id AND rt.recette_id IN(liste_des_id)


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 24-10-2007 à 18:37:03    

Dj YeLL a écrit :

Tu veux sélectionner uniquement la liste des tags présent dans le résultat du 1er filtrage ?
 
Tu récupères la liste des ID des recettes restant après le filtrage, et tu fais un truc du genre (de tête, c'est peut être faux... :D ) :
 

Code :
  1. SELECT tag AS t FROM tags
  2. INNER JOIN recettes_tags AS rt
  3. ON rt.tag_id = t.id AND rt.recette_id IN(liste_des_id)



 
D'abord merci, mais je ne comprend pas tout dans ta requête. Peux m'éclairer ?
 
t et rt c'est quoi ? Et comment tu recupère liste_des_id (c'est $result ?) ?
 
Encore merci d'avance

Reply

Marsh Posté le 24-10-2007 à 18:42:10    

chrisgo_fr a écrit :

 

D'abord merci, mais je ne comprend pas tout dans ta requête. Peux m'éclairer ?

 

t et rt c'est quoi ? Et comment tu recupère liste_des_id (c'est $result ?) ?

 

Encore merci d'avance

 

t et rt sont des alias.

 

Si tu fais une recherche dans plusieurs tables et que les noms de tables sont super long, tu peux leur donner un alias.

 

Au lieu de ça :

 
Code :
  1. SELECT ma_table_avec_un_nom_super_long.id,
  2. ma_table_avec_un_nom_super_long.name,
  3. ma_table_avec_un_nom_super_long.mon_champ,
  4. mon_autre_table_avec_un_nom_tres_long_aussi.id,
  5. mon_autre_table_avec_un_nom_tres_long_aussi.name,
  6. mon_autre_table_avec_un_nom_tres_long_aussi.monchamp
  7. FROM ma_table_avec_un_nom_super_long,
  8. mon_autre_table_avec_un_nom_tres_long_aussi
 

Tu as ça :

 
Code :
  1. SELECT t1.id, t1.name, t1.mon_champ, t2.id, t2.name, t2.monchamp
  2. FROM ma_table_avec_un_nom_super_long AS t1, mon_autre_table_avec_un_nom_tres_long_aussi AS t2
 

Le "AS" est par ailleurs facultatif, tu peux faire

 
Code :
  1. SELECT t1.id, t1.name, t1.mon_champ, t2.id, t2.name, t2.monchamp
  2. FROM ma_table_avec_un_nom_super_long t1, mon_autre_table_avec_un_nom_tres_long_aussi t2
 

Edit : Pour les ID, tu as dis que tu avais une liste de recettes après filtrage, je suppose que tu as donc leur id non ?


Message édité par Dj YeLL le 24-10-2007 à 18:43:45

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 25-10-2007 à 09:00:13    

Dj YeLL a écrit :

Code :
  1. SELECT tag AS t FROM tags
  2. INNER JOIN recettes_tags AS rt
  3. ON rt.tag_id = t.id AND rt.recette_id IN(liste_des_id)



S'trop tout pas bo :o
Si le principe de la requête est bon,  l'utilisation de IN est à bannir dès que possible et surtout l'utilisation de IN dans une condition de jointure c'est à chier [:dawa]
Alors biensur niveau optimisation, la plupart des SGBD doivent s'en sortir correctement mais il est beaucoup plus "clair" de mettre cette condition dans le where:

Code :
  1. SELECT tag AS t FROM tags
  2. INNER JOIN recettes_tags AS rt
  3. ON rt.tag_id = t.id
  4. WHERE  rt.recette_id IN(liste_des_id)
 

Message cité 1 fois
Message édité par anapajari le 25-10-2007 à 09:00:29
Reply

Marsh Posté le 25-10-2007 à 10:12:58    

anapajari a écrit :


S'trop tout pas bo :o
Si le principe de la requête est bon,  l'utilisation de IN est à bannir dès que possible et surtout l'utilisation de IN dans une condition de jointure c'est à chier [:dawa]
Alors biensur niveau optimisation, la plupart des SGBD doivent s'en sortir correctement mais il est beaucoup plus "clair" de mettre cette condition dans le where:

Code :
  1. SELECT tag AS t FROM tags
  2. INNER JOIN recettes_tags AS rt
  3. ON rt.tag_id = t.id
  4. WHERE  rt.recette_id IN(liste_des_id)
 


 

Ouaip, à dire vrai je vois même pas pourquoi je l'ai foutu dans le ON, alors que j'essaye toujours de foutre le pus possible dans le WHERE ... m'enfin, forum, réponse rapide, pas dans le contexte, juste pour aider toussa :o

 

:D :jap:

 


Edit :
[EXCUSE-A-2-BALLES]
Puis je vais pas faire tout le boulot à sa place non plus, c'était juste pour le mettre sur la voie, j'ai fais exprès pour voir s'il suivait
[/EXCUSE-A-2-BALLES]


Message édité par Dj YeLL le 25-10-2007 à 10:13:59

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 25-10-2007 à 11:10:01    

Bonjour,
 
Merci pour votre aide.
 
J'ai essayé de faire ce que vous m'avez dit mais cela ne fonctionne pas, je n'ai peux être pas la bonne syntaxe.
 
Voici m'a requête, je n'ai pas pris les alias car vous venez de me les apprendre et pour que ce soit plus clair dans ma tête pour le moment. je les mettrais par la suite.
 
$result = mysql_db_query($sql_bdd,"SELECT tag, FROM tags INNER JOIN recettes ON recettes.noint = tags.recette_noint WHERE recettes.noint IN (SELECT * FROM recettes INNER JOIN tags ON recettes.noint = tags.recette_noint where tags.tag=\"$retag\" )" ) or die(mysql_error());
 
Encore merci pour votre aide.

Reply

Marsh Posté le 25-10-2007 à 11:19:37    

Première chose: pas de virgule entre ton tag et FROM, sinon ça peut pas marcher.
 
Ensuite, est-ce que tu pourrais nous dire ce que tu cherches exactement à obtenir en français?
 
De ce que je comprends de ta tentative de requête, tu cherches tous les tags présents dans toutes les recettes qui contiennent un tag passé en paramètre?
Si c'est bien cela, j'aurais plutot tendance à écrire la requête ainsi

Code :
  1. SELECT
  2. DISTINCT tall.tag
  3. FROM
  4. tags tparam
  5. INNER JOIN recettes ON recettes.noint = tparam.recette_noint
  6. INNER JOIN tags tall ON tall.recette_noint = recettes.noint
  7. WHERE
  8. tparam.tag = '{ton paramètre}'


Il est a noté que cela remontra également le tag que tu passes en paramètre, si tu souhaites éviter cela, change

Code :
  1. INNER JOIN tags tall ON tall.recette_noint = recettes.noint


en

Code :
  1. INNER JOIN tags tall ON tall.recette_noint = recettes.noint AND tall.tag <> tparam.tag

Reply

Marsh Posté le 25-10-2007 à 11:36:54    


Super ca marche ! MERCI !!!!!
 
Je vous remercie enormément, vous m'avez appris beaucoup de choses.
 
Pour mon premier post sur un forum, je ne suis pas déçu.
 
 :)  :)  :)  
 
Encore une petit question afin de bien comprendre : tparam et tall cela correspondes à quoi ?
 
Chris

Reply

Marsh Posté le 25-10-2007 à 11:41:52    

chrisgo_fr a écrit :


Super ca marche ! MERCI !!!!!

 

Je vous remercie enormément, vous m'avez appris beaucoup de choses.

 

Pour mon premier post sur un forum, je ne suis pas déçu.

 

:)  :)  :)

 

Encore une petit question afin de bien comprendre : tparam et tall cela correspondes à quoi ?

 

Chris

 

Les alias mon cher ... les alias :D

 

Edit : Si je peux me permettre ... pourquoi "noint" ?

Message cité 1 fois
Message édité par Dj YeLL le 25-10-2007 à 11:42:19

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 25-10-2007 à 12:03:00    

Dj YeLL a écrit :


 
Les alias mon cher ... les alias :D
 
Edit : Si je peux me permettre ... pourquoi "noint" ?


 
Pour moi noint = numéro interne (ID)
 
Ce que je comprend pas avec les alias, c'est que je n'ai pas l'impression que l'on note quelque part que t'elle table à tel alias et ca me déroute. Je vais potasser le sujet.
 
Encore merci

Reply

Marsh Posté le 25-10-2007 à 12:05:30    

chrisgo_fr a écrit :


 
1> Pour moi noint = numéro interne (ID)
 
2> Ce que je comprend pas avec les alias, c'est que je n'ai pas l'impression que l'on note quelque part que t'elle table à tel alias et ca me déroute. Je vais potasser le sujet.

Encore merci


 
1> Pourquoi ne pas l'appeler simplement "id" ? (enfin peu importe ... je trouve juste ça "étrange" noint :D )
 
2> Ben si :
 
INNER JOIN tags tall ON tall.recette_noint = recettes.noint
 
Tu donnes l'alias "tall" à la table "tags"
 
Comme je le disais plus haut, on peut aussi l'écrire :
 
INNER JOIN tags AS tall ON tall.recette_noint = recettes.noint
 
AS signifiant en gros "en tant que"


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 25-10-2007 à 12:08:07    

un petit complément sur l'explication de Dj Yell:
Dans le cas de la requête que j'ai filé plus haut tu utilises 2 fois la table tags.
Il est donc nécessaire de leur donner un "petit nom" pour savoir que le sgbd sache sur laquelle il doit aller lire tel champ.

Reply

Marsh Posté le 25-10-2007 à 14:05:11    


Juste une dernière chose, pour que je puisse afficher une taille différentes selon la fréquence du tag, il me faut un count(*) as number dans la requête et je n'arrive pas à le placer correctement. Puis-je abusé de votre gentillesse ?

Reply

Marsh Posté le 25-10-2007 à 14:30:13    

Si je dis pas de connerie, il faut dans ce cas virer le "DISTINCT" sur la sélection des tag, et faire un GROUP BY à la place
 
Un truc du genre :
 

Code :
  1. SELECT
  2.    tall.tag, COUNT(tall.tag)
  3. FROM
  4.    tags tparam
  5. INNER JOIN recettes ON recettes.noint = tparam.recette_noint
  6. INNER JOIN tags tall ON tall.recette_noint = recettes.noint
  7. WHERE
  8.    tparam.tag = '{ton paramètre}'
  9. GROUP BY
  10.    tall.tag


 
Mais si un plus pro que moi pouvait donner sa version :D


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 25-10-2007 à 15:29:33    

Dj YeLL a écrit :

Si je dis pas de connerie, il faut dans ce cas virer le "DISTINCT" sur la sélection des tag, et faire un GROUP BY à la place
 
Un truc du genre :
 

Code :
  1. SELECT
  2.    tall.tag, COUNT(tall.tag)
  3. FROM
  4.    tags tparam
  5. INNER JOIN recettes ON recettes.noint = tparam.recette_noint
  6. INNER JOIN tags tall ON tall.recette_noint = recettes.noint
  7. WHERE
  8.    tparam.tag = '{ton paramètre}'
  9. GROUP BY
  10.    tall.tag


 
Mais si un plus pro que moi pouvait donner sa version :D


 
 
Merci bien, sa fonctionne bien. J'ai juste rajouté "as number" après COUNT(tall.tag)
 
Encore Merci !!!
 
 
 

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed