Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自多个表的PHP/MySQL回显_Php_Mysql_Sql - Fatal编程技术网

来自多个表的PHP/MySQL回显

来自多个表的PHP/MySQL回显,php,mysql,sql,Php,Mysql,Sql,对于学校项目,我们必须创建一个与myphp数据库交互的网站。我们希望从数据库中的两个不同表中提取数据,但是当我们尝试回显数据时,只显示第一个表中的数据。 我们有两张桌子:票和访客 这是我们的代码: include 'login.php'; $sql = mysql_query("SELECT * FROM TICKET VISITOR ",$mysql) or die("The query failed!"); mysql_close($mys

对于学校项目,我们必须创建一个与myphp数据库交互的网站。我们希望从数据库中的两个不同表中提取数据,但是当我们尝试回显数据时,只显示第一个表中的数据。 我们有两张桌子:票和访客 这是我们的代码:

include 'login.php';

        $sql = mysql_query("SELECT * FROM TICKET VISITOR ",$mysql)
        or die("The query failed!");

        mysql_close($mysql)
        or die("Closing the connection failed!");

        if (!$sql) {
            echo 'Could not run query: ' . mysql_error();
            exit;
        }
        echo "<br/>";   
        while ($row = mysql_fetch_row($sql)) {      
            echo $row[0];
            echo " ";
            echo $row[1];
            echo " ";
            echo $row[2];
            echo "<br/>"; 

        }
包括“login.php”;
$sql=mysql\u查询(“从票据访问者中选择*,$mysql)
或者死(“查询失败!”);
mysql\u close($mysql)
或者死亡(“关闭连接失败!”);
如果(!$sql){
echo“无法运行查询:”。mysql_错误();
出口
}
回声“
”; 而($row=mysql\u fetch\u row($sql)){ echo$行[0]; 回声“; echo$行[1]; 回声“; echo$行[2]; 回声“
”; }
选项1加入

从票证内选择*加入访客姓名

名称这里是一个列名,可能是id

选择2工会

SELECT * FROM TICKET UNION SELECT * FROM VISITOR;

基本上,注释已经说明了这一点:您可以将连接用于此任务。然而,我认为您需要的是正确地介绍这些选项及其含义,因此,让我尝试帮助您:

第一个问题:你的问题是什么?如果您想独立地从两个表中获取数据,那么两个表所要做的就是分别进行查询。您或多或少会运行以下命令:

//first run this query
$sql = mysql_query("SELECT * FROM TICKET ",$mysql)
//Run the query and process the data

//then run this query
$sql = mysql_query("SELECT * FROM VISITOR ",$mysql)
//Process this data, too
实际上,您可能想做的是基于另一个表中的数据从一个表中获取数据。例如,您希望获得一些关于用户的数据,在一个表中有他们的电子邮件地址和街道地址,在另一个表中有他们的姓名。因此,您可以根据两个表都包含的一些信息(键)将它们连接在一起。那么你从

TABLE 1: id | email | address
TABLE 2: id | firstname | lastname
在此表格中:

NEW TABLE: id | email | address | firstname | lastname
连接有不同的类型。此链接的代码可能与以下链接类似:

$sql = mysql_query("SELECT table1.id, table1.email, table1.address, table2.firstname, table2.lastname FROM TABLE1 LEFT JOIN TABLE2 ON (table1.id = table2.id)",$mysql)

如前所述,联接是常见的,在其他地方也有适当的解释。我发现这是一个很好的教程,但当然提到的文档()也解释了它,可能更简洁。

根据您的代码,只需在第一个表后插入逗号(,)。见下文-

$sql = mysql_query("SELECT * FROM TICKET, VISITOR ",$mysql)
        or die("The query failed!");
如果第二个表上使用了任何外键,也可以使用内部联接


也可以使用union

供参考。它们不再得到维护。看到了吗?相反,了解并使用or-将帮助您决定哪一个最适合您。这不是您从多个表中选择数据的方式。Ticket和VISITOR是您的两个不同的表吗?您应该阅读joining<代码>从票证访问者中选择*是不可能的
您已经在选择查询中使用了join。不要这样做,因为对于两个有1K行的表,您将得到1M行输出。是的,您是对的,但我根据查询用户帖子回复了。