私はPHPでcodeigniterを使用してムービーアーカイブスクリプトをコーディングしています。私はIMDbから映画の情報を取得して、私のデータベースに追加しています。リンクと呼ばれる別のテーブルを使用して選択した映画のリンクを追加します。各行の別のテーブルからの配列としての配列の結合
これは私がデータベースから映画を取得するために使用していますクエリです:
$movies = $this->db->query("SELECT *
FROM movies
ORDER BY ".$order['by']." ".$order['type']."
LIMIT ".$limit.", " . $this->config->item('moviePerPage')
);
をし、私はこのようなビューファイルでそれをフェッチしています:
foreach ($movies->result() as $row) {
echo $row->name;
}
は今リンクがために示されなければなりません一致したIDを持つ各ムービー(ムービーは複数のリンクを持つことができます)。私のリンクテーブルには、「id」、「movieid」、「name」、「link」の各列があります。
単一のMySQLクエリで各ムービーのリンクを取得するにはどうすればよいですか?現在の$ rowムービーに関連するすべてのリンクを取得し、それらを配列として1つの変数にバインドすることは可能ですか? foreach()でループして各ムービーのリンクを表示することができます。
btw:movies.movieidとlinks.movieidの列は同じデータを持ちます。
リンクにカンマを使用できます。あなたがやっていることはSQLに属していません。データ構造の作成とロジックの表示は、アプリケーションに属します。 –
@Dan Grossman - カンマが問題である場合、他のいくつかの珍しい区切り文字を '%% @@ && @@ %% 'のように使用できます。どのようにSQLに属しませんか? group_concatはmysql節で、このように使用されます。私はここに私の答えを課すのではなく、これに間違っている。ユーザーは落とし穴に注意する必要があります。それだけです。 –
クエリを正常に実行するには ''、 ''の前に 'SEPARATOR'を使用しなければなりませんでした。 [doc](http://dev.mysql.com/doc/refman/5.0/ja/group-by-functions.html#function_group-concat)を参照してください。 –