Système de Tag

Fermé
Pitouli Messages postés 59 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 31 janvier 2015 - 15 août 2008 à 12:25
 ffhfd - 29 nov. 2010 à 14:31
Hello !
Sur tous els blogs maintenant, et même dans gmail, il y a des système de tags. On donne à un message un ou plusieurs tags, puis un menu permet d'afficher els messages qui correspondent aux tags sélectionnés.
La question :
Sauriez vous m'expliquer comment faire, ou m'indiquer un tuto ? Je tourne sous google depuis 3 heures, et rien !
Peut être que je n'utilise pas les bons termes...
Merci !
Pitouli
A voir également:

12 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
15 août 2008 à 16:30
mmh je vois

Et bien si tu travailles avec une base de données (ce que j'espère, sinon je ne serais pas d'une grande utilité), il faut que tu crées une nouvelle table avec un champs qui va faire lien à l'élément et un champ qui va contenir un "tag".
Ainsi pour chaque tag tu auras une nouvelle entrée avec toujours le même "lien" (l'identifiant) qui va faire la liste des tags d'un élément.

Ensuite avec des formulaires et des requêtes, tu vas pouvoir retrouver tous les éléments qui sont liés à un tag sélectionné.

(je parles avec des "éléments", ça peut paraître flou mais c'est parce que je ne connais ni la structure de ta base si tu en as une, ni le thème de ton site)
1
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
15 août 2008 à 12:28
J'ai pas vraiment saisi le problème.

Tu veux créer un système de tag sur ton site, c'est ça ?
0
Pitouli Messages postés 59 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 31 janvier 2015 1
15 août 2008 à 15:28
Oui, exactement ! :)
Pitouli
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
15 août 2008 à 15:32
si j'ai bien compris le système que tu décris, c'est un moteur de recherche.

Si tu utilise une base de donnée il faut que tu fasses un select sur les champs des tables qui t'intéressent avec un filtre dans le WHERE et ainsi tu récupère l'id des entrées pour les ressortir.

Fastoche :D
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pitouli Messages postés 59 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 31 janvier 2015 1
15 août 2008 à 16:10
Je crois que c'est pas tout à fait çà... :)
Enfin, visuellement, c'est pas çà.
Comment m'expliquer ?

Hum...
Avec blogger par exemple, quand tu fais un nouveau message, tu peux lui associer un ou plusieurs libellés.
Par exemple, on voit la photo de Jimmy qui est en train de monter le cheval Kaola, au concours d'obstacle de Jardy. Alors en mot clef, tu mets, Jimmy, tu mets Kaola et tu mets Jardy.
Puis dans le blog lui même, tu as la liste de tous les mots clefs utilisés, et il suffit de cliquer dessus pour voir tous les posts associés.

Par exemple, si tu cliques sur "Kaola", tu verras toutes les photos où il y a Kaola, quel que soit le cavalier, où le lieu du concours. Si tu cliques sur Jimmy, tu as toutes les photos le concernant, quelque soit le cheval qu'il monte, où le concours auquel il a participé. Et si tu cliques sur Jardy, tu verras toutes les photos prises lors du concours d'obstacle de Jardy.

Tu vois de quoi je parle ? :) Je ne crois pas (sans en être sûr), que ta solution fonctionne pour ce que j'ai évoqué. Si tu penses que c'est ce qu'il faut, est ce que tu veux bien me détailler un petit peu plus pour que je puisse mieux saisir ton idée ? (par exemple, quels sont les champs de la bdd, etc.)
Moi par rapport au truc de blogger, je rajouterai un petit truc si j'y arrive : la possibilité de sélectionenr plusieurs tags à la fois (par exemple "Jimmy" et "Kaola", afin de voir toutes les photos où Jimmy a monté Kaola, quel que soit le lieu)

Merci beaucoup de t'intéresser à mon cas ! :)
Pitouli

PS: les histoire de concours ne sont que pour l'exemple, sinon je me casserais pas la tête, et je ferais une colonne cavalier, une colonne cheval, et une colonne lieu... Mais dans mon cas, chaque image n'aura pas trois tags, elle pourra en avoir 1, 2, 3 ou plus, ce n'est pas fixe.
Encore merci ! :)
0
Pitouli Messages postés 59 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 31 janvier 2015 1
15 août 2008 à 17:14
Donc, corrige moi si je me trompe, j'aurai ma table tag qui contiendra selon l'exemple précédent ceci :

kaola | image1.jpg
Jimmy | image1.jpg
Jardy | image1.jpg
kaola |image2.jpg
John | image2.jpg
Jardy | image2.jpg
Sultan | image3.jpg
Jimmy | image3.jpg
CHV | image3.jpg

Dans cette table, je fais référence à l'image1.jpg, qui représente Jimmy montant Kaola à Jardy, à l'image2.jpg représentant John montant lui aussi Kaola à Jardy, et l'image3.jpg représentaant Jimmy montant cette fois ci Sultan, au CHV.
C'est un truc dans ce genre là qu'il faut que j'obtienne ?

Si je veux récupérer toutes les images de Jimmy, je fais une requête avec WHERE tag='jimmy'...
Mais si je veux récupérer les images où Kaola est monté à Jardy, je fai comment ?

Vraiment désolé de te faire perdre ton temps ! Et vraiment merci pour ton aide déjà préciseuse (à la fois précise et précieuse ;) !) !

Pitouli

PS : par contre, je peux pas te donner d'indication sur la manière dont est construite ma bdd : elle n'est toujours aps faite. Je préfère me renseigner sur ems futurs difficultés avant de commencer un truc qu'il me faudrait recommencer juste après ! ;) Donc si tu as des conseils, je suis preneur ! :)
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
15 août 2008 à 17:22
tu as visiblement compris le principe, sauf que pour simplifier les requêtes, il vaut mieux mettre l'identifiant de l'image (si tu as une table avec ces images de stockées)
Après il y a toujours moyen de s'en sortir, mais ça serait plus simple à mon goût.

Ensuite pour Koala à Jardy, il suffit de rajouter un AND dans ton WHERE : WHERE tag = 'Koala' AND tag = 'Jardy'

Après le gros travail c'est la constitution de la requête elle même, grâce à des requêtes imbriquées on devrait s'en sortir...

Il se peut que je dise des bêtises, je lance des hypothèses sans avoir de repère ni de support pour faire des essais, mais dans un premier temps si je devais le faire, je le ferais comme ça.
0
Pitouli Messages postés 59 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 31 janvier 2015 1
15 août 2008 à 17:43
Super merci ! :)

Mais j'ai juste un doute (mes connaissances ne sont aps assez précises pour pouvoir l'effacer).
Dans l'exmple de table que j'ai fait, si je met WHERE tag = 'Kaola' AND tag = 'Jardy', et que je fais une boucle pour exprimer le contenu de la requête, je risque aps d'obtenir image1.jpg, puis de nouveau image1.jpg, puis image2.jpg, puis de nouveau image2.jpg ? Alors que moi, j'aimerai juste obtenir image1.jpg puis image2.jpg.

En tout cas, merci beaucoup beaucoup, ça va m'aider vraiment (je peux pas commencer le site tout de suite, faut que je réfléchisse de manière globale à la manière dont je vais le créer), mais si j'ai de nouveau besoin d'aide et que tu m'y autorises, je t'enverrai un mp pour te prévenir que j'ai fais un post ! ;) (le post, c'est pour que tout le monde puisse profiter de tes coinnaissances, le mp, c'est parce que tu est très pédagogue ;) !)

Merci ! :)

Pitouli
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
15 août 2008 à 18:05
lol merci du compliment, je suis pas toujours très patient ! Avec toi ça va parce que tu fais un effort de compréhension ;)

Pour éviter d'obtenir plusieurs fois le même résultat il y a la clause UNIQUE() à utiliser dans le SELECT de la requête.

SELECT UNIQUE(image)
FROM table
WHERE tag = 'Koala'
AND tag = 'Jardy'
0
Pitouli Messages postés 59 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 31 janvier 2015 1
15 août 2008 à 19:54
Tu es genial ! :)
Pitouli
0
hdfhfhfdhfdhf
0
ui ui uiiiiiiiiii
0