我有一个表格,表格如下:http://puu.sh/5VBBv.png
表格的结尾是City,显示一个城市的ID,该ID应该链接到另一个表格(http://puu.sh/5VBIG.png)。
我为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']和其他值作为表中输出的值,到目前为止我找不到任何解决方案。我只是在学习连接,所以我对我可能做错了什么并不完全了解。有什么明显的东西吗?
答案 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