例如,我创建了两个页面和两个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
<a href='citys.php?cmd=menu&id=";echo $row['id'];echo "'>

使用以下代码显示来自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页显示评论因此,必须对查询进行编辑,才能从表citys.php中获得正确的数据。
我在网上尝试了一些我自己编辑过的例子,比如:
<?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";

如果表“comments”有三行,则此代码只显示最后两行,而不显示第一行:
<?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"] ?>

我不知道为什么第一张唱片在循环中被遗漏了。

最佳答案

使用此查询

$sql = "SELECT * FROM citys LEFT JOIN comments ON comments.city=citys.city WHERE citys.id=$id";

对这种类型的工作使用leftjoin

关于php - 用PHP连接两个MySQL表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10172411/

10-10 23:08
查看更多