Ich möchte wählen einige Tags aus meiner Datenbank abgerufen werden, sind sie in der Form:wie Keywords von einem Komma getrennt Tags
topic_id tags
1 `tag1,tag2,tag3`
2 `tag1,tag4,tag5`
3 `tag2,tag4,tag5`
4 `tag6,tag7,tag2`
ich so etwas wie dieses haben wollen:
tag1 tag2 tag3 tag4 tag5 tag6 tag7
dh alle eindeutigen Tags
So dass ich jedes Tag in einen Link wickeln kann, um Nachrichtenartikel zu gruppieren, die solche spezifischen Tags hat.
Diese folgende Abfrage I ist bisher geschrieben habe nicht funktioniert:
$tags = mysql_query("SELECT tags, topic_id
FROM forum_topics
WHERE topic_id > 0") or die (mysql_error());
while($tag = mysql_fetch_assoc($tags)){
$split_tags = "$tag";
$pieces = explode(",", $split_tags);
echo $pieces ;
Als ich print_r($pieces);
tat bekam ich Array ([0] => Array) Array ([0] => Array) Array ([0] => Array) Array ([0] => Array)
Was nicht war, was ich suchte.
Wie es jetzt aussieht, sieht meine Tabellenstruktur so aus topic_id , topic_head, topic_body, topic_tag, topic_date, topic_owner
.. Wie kann ich das topic_tag weiter normal machen.
Ist das eine Tabelle, die Sie erstellt haben? Wenn ja, ist es eindeutig nicht normalisiert. Eine normalisierte Tabelle würde eine 1-zu-1-Zuordnung zwischen der topic_id und den Tags haben. Sie könnten dann einfach eine 'Select distinct Tags from forum_topics'-Abfrage ausführen, um zu bekommen, was Sie wollen. –
Verwenden Sie auch nicht die 'mysql_ *' Funktionen in Ihrem Code. Diese Funktionen werden nicht länger beibehalten und werden [veraltet] (http://news.php.net/php.internals/53799). Stattdessen sollten Sie entweder [MySQLi] (http://php.net/mysqli) oder [PDO] (http://php.net/pdo) verwenden. Weiß nicht, welches ich benutzen soll? [Dieser Artikel] (http://php.net/manual/en/mysqlinfo.api.choosing.php) sollte helfen. –