Ich kodiere ein Filmarchivskript unter Verwendung von Codeigniter für mich mit PHP. Ich erhalte Filminformationen von IMDb und füge sie meiner Datenbank hinzu. Ich füge Links für Filme hinzu, die ich mit einer anderen Tabelle namens Links ausgewählt habe.Verknüpfen von Zeilen als Array aus einer anderen Tabelle für jede Zeile
Dies ist die Abfrage, die ich die Filme aus der Datenbank erhalten bin mit:
$movies = $this->db->query("SELECT *
FROM movies
ORDER BY ".$order['by']." ".$order['type']."
LIMIT ".$limit.", " . $this->config->item('moviePerPage')
);
und ich es im Hinblick Datei wie folgt bin holen:
foreach ($movies->result() as $row) {
echo $row->name;
}
Jetzt die Links angezeigt werden müssen jeder Film mit den übereinstimmenden IDs (Filme können mehr als einen Link haben). Meine Linktabelle hat folgende Spalten: 'id', 'movietid', 'name', 'link'
Wie bekomme ich Links für jeden Film mit einer einzigen MySQL-Abfrage? Ist es möglich, alle Links, die sich auf den aktuellen $ row Film beziehen, zu erhalten und sie an eine einzelne Variable als Array zu binden? damit kann ich es mit foreach() loopen und Links für jeden Film anzeigen.
btw: movies.movieid und links.movieid Spalten haben die gleichen Daten.
Links können Kommas enthalten. Was Sie tun, gehört nicht in SQL.Das Erstellen von Datenstrukturen und Anzeigelogik gehört in die Anwendung. –
@Dan Grossman - wenn Kommas ein Problem sind, kann ein anderes ungewöhnliches Trennzeichen verwendet werden wie '%% @@ && @@ %%' Wie gehört es nicht zu SQL? group_concat ist eine mysql-Klausel und wird so verwendet. Ich bin nicht hier, um meine Antwort durchzusetzen, aber was ist daran falsch? Benutzer müssen nur auf die Fallstricke achten und das ist alles. –
Ich musste 'SEPARATOR' vor dem '', '' verwenden, um die Abfrage erfolgreich auszuführen. [Siehe doc] (http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat). –