繁体   English   中英

使用php显示来自多个mysql表的结果

[英]show results from multiple mysql tables using php

我有多个具有相同结构的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为资源,给定布尔值”

您的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。

更改

 INNER JOIN table2 ON table1.url = table1.url

INNER JOIN table2 ON table1.url = table2.url

在选中“ 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)){

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM