MySQL内部连接输出到php中的html表

时间:2013-12-23 03:12:42

标签: php html mysql sql join

我有一个表格,表格如下:http://puu.sh/5VBBv.png

enter image description here

表格的结尾是City,显示一个城市的ID,该ID应该链接到另一个表格(http://puu.sh/5VBIG.png)。

enter image description here

我为INNER JOIN查询所做的是:

mysql_query("SELECT * FROM cities INNER JOIN people ON people.cityid = cities.id") or die(mysql_error());` 

我试图将其输出到表格中:

echo "<td>" . $row['cityid'] . "</td>";

我的问题是我不太确定如何实际显示与城市名称对应的cityid。我已经尝试使用['name']和其他值作为表中输出的值,到目前为止我找不到任何解决方案。我只是在学习连接,所以我对我可能做错了什么并不完全了解。有什么明显的东西吗?

3 个答案:

答案 0 :(得分:0)

首先,您在联接查询中使用*可能不明确。如果城市有一个名称列,并且人们有一个名称列,您将无法知道您正在获得哪一个。其次,你可以通过几种方式做到这一点。我想你正试图从一个城市名称获得一个城市id。如果这是正确的,你可以make和ajax调用并直接查询或定义一个数组如下:

$res = mysql_query("...");    
$city_ids = Array();

while ($ary = mysql_fetch_assoc($res)) {
        city_ids[$ary['name']] = Ary['id']; 
}

然后,当您获得名称时,您只需循环$ary['name']

答案 1 :(得分:0)

从人们中选择并加入城市更有意义。然后选择您需要的字段。

SELECT people.*, cities.name as city_name FROM people JOIN cities ON people.cityid = cities.id

然后,echo $row['city_name']

答案 2 :(得分:0)

 Select ID from cities city, people person where person.ID = city.ID

您正在从城市和人员中选择ID,并加入ID