Hallo Thomas,
> SELECT knn_information.information AS information
> FROM knn_information
> JOIN knn_tagged
> ON knn_tagged.information = knn_information.id
> JOIN knn_tags
> ON knn_tags.id = knn_tagged.tag
> WHERE knn_tags.tag = '$keyword'
Solange nur ein Tag mit der Information verknüpft ist, klappt alles wunderbar. Wenn ich nun aber mehrere Tags habe klappt das ganze nicht mehr.
Was heißt: "Klappt nicht mehr"?
Beispiel:
WHERE knn_tags.tag = '$keyword1' AND knn_tags.tag = '$keyword2'
a) Wenn $keyword1 ungleich $keyword2 ist, dann _muss_ die Ergebnismenge leer
sein. Wahrscheinlich möchtest Du den OR-Operator verwenden, noch schöner
wäre die Verwendung von IN:
WHERE knn_tags.tag IN ('$keyword1', '$keyword2')
b) zu PHP:
Falls Deine Keywords aus Benutzereingaben stammen, so solltest Du diese mit
mysql_real_escape_string() behandeln, um SQL-Injection zu vermeiden.
(adäquate Mechanismen bei mysqli oder PDO böten sich auch an :-))
Freundliche Grüße
Vinzenz