Hi, habe folgenden Code:
Folgende Situation:
Habe in einer Datenbanktabelle eine Spalte ($row['artikel']), in welcher sich Begriffe befinden, die mit einem ", " abgetrennt sind.
Jetzt möchte ich jeden dieser Begriffe mit einer anderen Datenbanktabelle (namens artikel) abgleichen. Da aber manchmal mehrere Begriffe in einem Artikel vorkommen, passiert es schnell, dass er dann doppelte Einträge generiert, also z.B. so:
Artikel 1
Artikel 2
Artikel 2
Artikel 2
Artikel 3
Das wollte ich verhindern, in dem ich ein leeres array erstelle, und immer erst prüfe, ob der Titel des Artikels bereits vorhanden ist im Array. Wenn nicht, dann soll er den titel mit echo ausgeben und den Titel in das Array einfügen.
Wenn der Titel aber schon im Array drin, soll nichts passieren, und der nächste Begriff soll überprüft werden.
Leider funktioniert das nicht. Weiß einer, wieso?
LG
PHP:
<?php $artikel = utf8_encode($row['artikel']);
$artikel_explode = explode(", ", $artikel);
foreach ($artikel_explode as $tag) {
$result2 = $db->query("SELECT id,titel FROM `artikel` WHERE `inhalt` LIKE '%$tag%'");
$doppelTest = array();
while(@$row2 = $result2->fetch_assoc()) {
if(!in_array($row2['titel'], $doppelTest)) {
array_push($doppelTest, $row2['titel']);
echo $row2['titel'] . "<br>";
}
}
}
?>
Folgende Situation:
Habe in einer Datenbanktabelle eine Spalte ($row['artikel']), in welcher sich Begriffe befinden, die mit einem ", " abgetrennt sind.
Jetzt möchte ich jeden dieser Begriffe mit einer anderen Datenbanktabelle (namens artikel) abgleichen. Da aber manchmal mehrere Begriffe in einem Artikel vorkommen, passiert es schnell, dass er dann doppelte Einträge generiert, also z.B. so:
Artikel 1
Artikel 2
Artikel 2
Artikel 2
Artikel 3
Das wollte ich verhindern, in dem ich ein leeres array erstelle, und immer erst prüfe, ob der Titel des Artikels bereits vorhanden ist im Array. Wenn nicht, dann soll er den titel mit echo ausgeben und den Titel in das Array einfügen.
Wenn der Titel aber schon im Array drin, soll nichts passieren, und der nächste Begriff soll überprüft werden.
Leider funktioniert das nicht. Weiß einer, wieso?

LG