例如我创建了2个页面和2个MySQL表格。用php加入两个mysql表格
Index.php
& citys.php
全市
ID City Country Population
--------------------------------------
1 Amsterdam NL 1500000
2 Rotterdam NL 900000
3 Dusseldorf DE 1800000
评论
ID City Name Comment
---------------------------------
1 Dusseldorf Jack Great city!
2 Dusseldorf John Beautiful
3 Rotterdam Emy Love it
目前我只用表citys
这样的:
index.php
链接到citys.php
有:
<a href='citys.php?cmd=menu&id=";echo $row['id'];echo "'>
而且citys.php
使用此代码从MySQL显示数据:
<?php
include "connect.php";
if(!isset($cmd))
{
if($_GET["cmd"]=="menu" || $_POST["cmd"]=="menu")
{
if (!isset($_POST["submit"]))
{
$id = $_GET["id"];
$sql = "SELECT * FROM citys WHERE id=$id";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
?>
<?php echo $row["City"] ?>
<br><br>
<?php echo $row["Country"] ?>
<br><br>
<?php echo $row["Population"] ?>
直到这里的一切是自我表现和做工精细。
但是我想要完成的还是显示第2页的注释。因此查询必须被编辑以从表comments
获得正确的数据。
我试图从互联网上,我已经编辑自己喜欢的不同的例子:
<?php
include "connect.php";
if(!isset($cmd))
{
if($_GET["cmd"]=="menu" || $_POST["cmd"]=="menu")
{
if (!isset($_POST["submit"]))
{
$id = $_GET["id"];
$sql = "SELECT citys.*, comments.* FROM citys, comments WHERE citys.id=$id AND comments.city=citys.city";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
?>
但没有任何工程。
任何人可以帮忙吗?
编辑!
从VIPIN JAIN答案作品中的查询,但还剩下一个问题:
查询:
$sql = "SELECT * FROM citys LEFT JOIN comments ON comments.city=citys.city WHERE citys.id=$id";
如果表“意见”有3行的代码只能说明过去两年,但不第一个:
<?php while($row = mysql_fetch_array($result)) {
echo "<br><br>";
echo $row['name'];
echo "<br>";
echo $row['comment'];
}
?>
如果我尝试这个,它只显示第一行。
<?php echo $row["name"] ?>
<br>
<?php echo $row["comment"] ?>
我不知道为什么第一条记录留在循环中。
的要弄清这个问题,有点可能您发布的表定义。我不确定这些表格是关联的。你在这两个表中都有一个ID,我认为它是主键。但是从我能看到的是,您是否将城市名称放入评论表中作为城市的外键?如果你能向我展示表格定义,我将能够提供帮助。 – Namphibian 2012-04-16 10:32:30
为什么,我只写了一个非常冗长的问题和答案,涵盖了这种[确定的问题](http://stackoverflow.com/questions/12475850/how-can-an-sql-query-return-data-from-多表),我希望这将有助于澄清如何加入表的工作以及如何从数据库中的多个表中获取信息! – Fluffeh 2012-09-18 14:09:00