1

同じ構造の mysql テーブルが複数あります。単一のクエリですべてのテーブルのすべての結果を表示しようとしています。私は数時間オンラインで検索してきましたが、これが私が思いついたものです。

    $videos_query = mysql_query("SELECT 
                    table1.title,
                    table1.url,
                    table1.image,
                    table2.title,
                    table2.url,
                    table2.image,
                    table3.title,
                    table3.url,
                    table3.image
                 FROM
                    table1
                 INNER JOIN table2 ON table1.url = table2.url
                 INNER JOIN table3 ON table1.url = table3.url");
while($video_info = mysql_fetch_array($videos_query)){

ただし、PHP im で上記のコードを使用すると、「警告: mysql_fetch_array() はパラメーター 1 がリソースであり、ブール値が指定されていることを期待しています」というエラーが表示されます。

4

3 に答える 3

1

SQL クエリにエラーがあります。次のtable1ようにする必要がありますtable2

$videos_query = mysql_query("SELECT 
                    table1.title,
                    table1.url,
                    table1.image,
                    table2.title,
                    table2.url,
                    table2.image,
                    table3.title,
                    table3.url,
                    table3.image
                 FROM
                    table1
                 INNER JOIN table2 ON table1.url = table2.url
                 INNER JOIN table3 ON table1.url = table3.url");

if (mysql_num_rows($videos_query) > 0) {
    while ($video_info = mysql_fetch_array($videos_query)) {
        // process your data here
    }
}

ユニオン選択を行いたい場合:

$videos_query = mysql_query("
  SELECT title, url, image
  FROM table1
  UNION
  SELECT title, url, image
  FROM table2
  UNION
  SELECT title, url, image
  FROM table3
");

if (mysql_num_rows($videos_query) > 0) {
    while ($video_info = mysql_fetch_array($videos_query)) {
        // process your data here
    }
}

また、いくつかの列で並べ替えたい場合もあります。その場合は、そこにORDER BY+ column_name を追加します。

于 2013-10-24T11:41:15.023 に答える
0

チェックしながら、どちらが間違っているONかを比較 しています。table1.url = table1.url

正しいコードは次のとおりです。

$videos_query = mysql_query("SELECT 
                table1.title,
                table1.url,
                table1.image,
                table2.title,
                table2.url,
                table2.image,
                table3.title,
                table3.url,
                table3.image
             FROM
                table1
             INNER JOIN table2 ON table1.url = table2.url
             INNER JOIN table3 ON table1.url = table3.url");
while($video_info = mysql_fetch_array($videos_query)){
于 2013-10-24T11:42:53.370 に答える