con un bel po' di input da parte di Faber ( realizzatore di smarking.com ), che ringrazio ancora moltissimo,sto realizzando anche io un piccolo bookmark che servirà nella intranet della ditta in cui lavoro, e ho un problema nell'estrazione dei tag relativi...
ho questa tabella di tag:
dove, i primi 3 record sono relativi al bookmark 1 e gli ultimi 2, ovviamente, al bookmark 2codice:INSERT INTO `bookmarkTags` (`userID`, `bookmarkID`, `tag`) VALUES (1, 1, 'manuale'), (1, 1, 'on line'), (1, 1, 'php'), (1, 2, 'manuale'), (1, 2, 'manuali');
come si può ben vedere il campo userID è chiave esterna relativa alla tabella degli utenti, mentre il campo bookmarkID è chiave esterna verso la tabella dei bookmark.
La query che uso per estrarre i tag (relativi o meno) è questa:
dove $tag è una stringa che può contenere: 'php' oppure 'php','manuale' etc etcCodice PHP:$sql="select b.tag, count(b.userID) as tagCount from bookmarkTags a, bookmarkTags b where a.userID=b.userID and a.bookmarkID=b.bookmarkID and a.tag in ($tag) and b.tag not in ($tag) group by b.tag order by tagCount desc, b.tag";
il problema inizia a presentarsi nel momento in cui seleziono due o più tag.
Perché se $tag vale solamente php il funzionamento è corretto, mi estrae i tag relativi: manuale e on line
se a questo punto seleziono anche manuale ( e $tag diventa quindi 'php','manuale' ) il risultato di quella query mi diventa on line e manuali...
non capisco perché mi estrae anche manuali...che prima non c'era. E a rigor di logica non dovrebbe estrarmelo in quanto manuali è in relazione SOLO con manuale, NON anche con php...
L'unico tag correlato SIA a php SIA a manuale dovrebbe essere on line.
Qualcuno mi aiuta a capire dove sto sbagliando?
Grazie infinite!![]()

,sto realizzando anche io un piccolo bookmark che servirà nella intranet della ditta in cui lavoro, e ho un problema nell'estrazione dei tag relativi...
Rispondi quotando

