Sorry für schlechtes Englisch und schlechten Titel!MySQL Wählen Sie aus 3 Tabellen und setzen Sie das in PHP-Array
Ich habe den Tisch "post"
id title
1 test Thread
2 hello
3 just
so "Tags" haben
tagid tagname
1 test
2 russia
3 new site
haben so ein post_tags
tagid postid
1 1
2 1
3 1
Ich brauche eine Reihe von var_dump weiter unten:
$posts = array(
1 => array(
'title' => 'test Thread',
'tags' => array(
'test', 'russia', 'new site',
),
),
2 => array(
'title' => 'hello',
'tags' => NULL
),
3 => array(
'title' => 'just',
'tags' => NULL
),
)
Ich versuche es, aber ich bekomme nicht das, was ich will.
SELECT `post`.`id`, `post`.`title`, `tags`.`tagname` FROM `post`
LEFT JOIN `post_tags` ON `post_tags`.`tagid` = `post`.`id`
LEFT JOIN `tags` ON `post_tags`.`tagid` = `tags`.`tagid`
ich in SQL nächste folgende bekommen:
id title tagname
1 test Thread test
1 test Thread russia
1 test Thread newsite
2 hello NULL
3 just NULL
PHP
$query = mysql_query("SELECT `post`.`id`, `post`.`title`, `tags`.`tagname` FROM `post`
LEFT JOIN `post_tags` ON `post_tags`.`tagid` = `post`.`id`
LEFT JOIN `tags` ON `post_tags`.`tagid` = `tags`.`tagid`");
$posts = array();
while ($row = mysql_fetch_assoc($query))
{
$posts[] = $row;
}
var_dump($posts);
Thank you !!!
Sie können eine mehrdimensionale Arrays nicht aus einer MySQL-Datenbank abrufen. Sie müssen Ihre eigenen Nachbearbeitung zu den Ergebnissen machen, wenn Sie es in diesem Formular möchten. – dqhendricks
FYI: Ausschließende Tabelle/Feldnamen ist nur erforderlich, wenn Sie reservierte Wörter verwenden. Dump alles in Backticks macht nur die Abfrage, die viel schwieriger zu lesen. –