BadKiss
Mitglied
Hallo miteinander,
ich hab (leider) mal wieder ein kleines Problem und benötige eure Hilfe.
Ich habe eine Tabelle, in der Sets stehen --> kleiner Auszug
Tabellenspalte --- Beispiel
sets_serie -- Silent Hill 4: The Room
sets_artist --- Konami
sets_tags --- silent hill;konami
Bei einem anderen Set steht folgendes
Tabellenspalte --- Beispiel
sets_serie --- Silent Hill - Der Film
sets_artist --- Sony Pictures
sets_tags --- silent hill;sony pitures
Ich wollte nun mit folgendem Code die zugehörigen Sets auslesen (bei denen ein Begriff der "Search Tags" die selben sind).
Zuerst speichere ich die Search Tags des aktuellen Sets (welches ich aktuell aufgerufen hab) in einen Array.
Dann filtere ich diesen Array, dass doppelte Einträge wegfallen.
Mit der Sqlanweisung wollte ich bewirken, dass nun nur die Sets ausgegeben werden, bei denen ein Teil des aktuellen Search Tags identisch ist (in dem Beispiel wäre das silent hill).
Allerdings gibt er mir nun für jeden Searchtag jeweils den Text Ähnliche Decks: 2x aus und dann unterschiedliche Sets (Siehe Bild).
Kann mir da jmd helfen?
Ich würde es gern so machen, dass jedes Set lediglich 1x ausgegeben wird und der Text Ähnliche Decks: ebenfalls nur 1x.
Wenn ich die for-Schleife gleich nach der SQL-Abfrage schließe, so nimmt er lediglich den letzten Search Tag und da dieser nicht übereinstimmt gibt er gar nichts aus...
Ich hoffe, ihr versteht worauf ich hinaus will und jmd kann mir helfen!
ich hab (leider) mal wieder ein kleines Problem und benötige eure Hilfe.
Ich habe eine Tabelle, in der Sets stehen --> kleiner Auszug
Tabellenspalte --- Beispiel
sets_serie -- Silent Hill 4: The Room
sets_artist --- Konami
sets_tags --- silent hill;konami
Bei einem anderen Set steht folgendes
Tabellenspalte --- Beispiel
sets_serie --- Silent Hill - Der Film
sets_artist --- Sony Pictures
sets_tags --- silent hill;sony pitures
Ich wollte nun mit folgendem Code die zugehörigen Sets auslesen (bei denen ein Begriff der "Search Tags" die selben sind).
PHP:
$tags = explode(';', $row_card1['sets_tags']);
$newtags = array_unique($tags);
for($i = 0; $i < count($newtags); $i++) {
$sql_tag = "SELECT *
FROM sets, sets_cat, sets_ucat
WHERE sets_tags != ''
AND sets_tags LIKE '%".$newtags[$i]."%'
AND sets_id != ".$row_card1['sets_id']."
AND sets_cat = sets_ucat_id
AND sets_cat_id = sets_ucat_ocat_id
ORDER BY sets_name";
$result_tag = mysql_query($sql_tag) OR die(mysql_error());
if(mysql_num_rows($result_tag)) {
echo '<b>Ähnliche Decks</b>:<br /><br />';
while($row_tag = mysql_fetch_assoc($result_tag)) {
echo $row_tag['sets_serie'];
}
}
Zuerst speichere ich die Search Tags des aktuellen Sets (welches ich aktuell aufgerufen hab) in einen Array.
Dann filtere ich diesen Array, dass doppelte Einträge wegfallen.
Mit der Sqlanweisung wollte ich bewirken, dass nun nur die Sets ausgegeben werden, bei denen ein Teil des aktuellen Search Tags identisch ist (in dem Beispiel wäre das silent hill).
Allerdings gibt er mir nun für jeden Searchtag jeweils den Text Ähnliche Decks: 2x aus und dann unterschiedliche Sets (Siehe Bild).
Kann mir da jmd helfen?
Ich würde es gern so machen, dass jedes Set lediglich 1x ausgegeben wird und der Text Ähnliche Decks: ebenfalls nur 1x.
Wenn ich die for-Schleife gleich nach der SQL-Abfrage schließe, so nimmt er lediglich den letzten Search Tag und da dieser nicht übereinstimmt gibt er gar nichts aus...
Ich hoffe, ihr versteht worauf ich hinaus will und jmd kann mir helfen!