PHP从两个表中打印,其中表A中的属性与表B中的id匹配


PHP print from two tables where attribute from table A matches id in table B

我正在建立一个简单的地址簿网站,您可以在其中输入有关一个人的信息,然后输入有关地址的信息。然后,您可以使用下拉菜单选择人们居住的地方,以更新人员中的建筑物id属性,以匹配建筑物中自动生成的id。我不知道如何打印所有人的所有信息(这我可以做),然后打印与每个人的建筑id相匹配的建筑信息(这我不知道该怎么做。现在我使用一个while循环来打印每个人。但是我无法打印出匹配的建筑。

编辑:同时,感谢我从这个网站获得的所有信息在我学习webprogramming

您可以在SQL中使用joins在一个查询中组合多个表。你也可以使用GROUP BY

只要搜索一下,我想你会得到一个很好的语言教程。

这里有一些很好的链接:

SQL JOIN, SQL GROUP BY

可以使用一些代码和表名来帮助更好地定义这个例子,但无论如何,您需要更改您的mysql查询。在数据库中,persons表和buildings表之间至少需要1个匹配行。这样,您可以使用公共行将它们一起JOIN

在本例中,我将使用id作为通用行的占位符。像这样的代码应该可以工作:
SELECT * FROM persons LEFT JOIN buildings ON(persons.id=buildings.id) WHERE persons.building_id = buildings.building_id

要获得personsbuildings的所有结果,您将需要单独的查询。但是,上面的查询应该为您提供人员信息的结果,其中building_idbuildings中的building_id相匹配。