Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 如何连接来自2个不同表的2个查询_Php_Mysql - Fatal编程技术网

Php 如何连接来自2个不同表的2个查询

Php 如何连接来自2个不同表的2个查询,php,mysql,Php,Mysql,编辑:这两个表之间的键是来宾的id 我想同时从两个不同的表运行两个查询: 我想创建一个列表,主人可以勾选出来,看看他们邀请过的每个人。我想显示被邀请的客人的用户名+位置 $table = query("SELECT guest FROM parties WHERE host = $uid"); $table2 = query("SELECT id, username, location FROM users WHERE id = $uid"); $uid是当前用户,正在签出其邀请的

编辑:这两个表之间的键是来宾的id

我想同时从两个不同的表运行两个查询:

我想创建一个列表,主人可以勾选出来,看看他们邀请过的每个人。我想显示被邀请的
客人的用户名+位置

 $table = query("SELECT guest FROM parties WHERE host = $uid");   

 $table2 = query("SELECT id, username, location FROM users WHERE id = $uid");
$uid是当前用户,正在签出其邀请的来宾的历史记录


参与方表

活动|嘉宾|主持人

圣诞节| 12 | 14


用户表

id |用户名|位置

12 |卡罗琳|纽约



我应该怎么做呢?

如果同时运行两个查询,这并不重要。
$query = query('SELECT `u`.`username`, `u`.`location` FROM `users` u JOIN `parties` p ON `p`.`guest` = `u`.`id` WHERE `p`.`host` = ' . $uid)
但如果你想在一个变量中得到结果,你可以使用它

$query = SELECT id, username, location FROM users
LEFT JOIN parties 
ON users.host = parties.host

基本上,您所需要做的就是使用JOIN子句。我希望下面的代码能有所帮助: $sql=(“选择
用户
id
用户
用户名
用户
位置,
各方
宾客使用(id)加入,
id
='uid');
$query=mysql\u query($sql)或die('执行查询失败:'。mysql\u错误)

请仔细检查您的表名和列名。这是宴会桌吗?还是成员?
$uid
是数字(12)还是名称('marc')?您在第一次查询中是否混淆了来宾列和主机列?@jcsanyi$uid的可能重复项是一个数字(12)。我刚刚编辑了表的名称。你应该重新考虑一下你的数据结构。在我看来,实现我们的要求的唯一方法是将user.username加入parties.host(如@Daniel的答案所示),以这种方式将某人的姓名作为密钥是一种非常糟糕的做法。如果两个人同名怎么办?他们将看到彼此的数据!如果有人想在系统中更改自己的名字怎么办?他们将丢失所有的旧数据。为密钥考虑一个唯一的数字。密钥是唯一的ID:见上面,我编辑了我的问题。id 12是两个表之间的链接。我是否应该用parties替换所有的Ps,用users替换美国?你可以-这是你的选择,但这根本不重要。你能再次回顾我的问题吗?我编辑了它。两个表之间的唯一键是id(12)。