Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 简单MYSQL查询_Php_Mysql - Fatal编程技术网

Php 简单MYSQL查询

Php 简单MYSQL查询,php,mysql,Php,Mysql,我试图弄清楚我将如何执行一个特定的MYSQL查询,但无法理解它 我有一个名为developers的表和一个名为plots的表。所有绘图都有一个开发者id,该id链接回developers表中的开发者名称 我试图输出开发者名称,然后输出该开发者下的所有绘图编号。一旦这样做了,我希望它对可能存在的任何其他开发人员再次这样做 我尝试过使用连接,但它只会打印: 开发商名称、地块编号、, 开发商名称、地块编号、, 开发商名称、地块编号、 我只需要开发者名称显示一次。但是我需要打印所有的绘图编号 我考虑在w

我试图弄清楚我将如何执行一个特定的MYSQL查询,但无法理解它

我有一个名为developers的表和一个名为plots的表。所有绘图都有一个开发者id,该id链接回developers表中的开发者名称

我试图输出开发者名称,然后输出该开发者下的所有绘图编号。一旦这样做了,我希望它对可能存在的任何其他开发人员再次这样做

我尝试过使用连接,但它只会打印:

开发商名称、地块编号、, 开发商名称、地块编号、, 开发商名称、地块编号、

我只需要开发者名称显示一次。但是我需要打印所有的绘图编号

我考虑在while循环中使用某种IF语句,如果开发人员名称与上一个循环中的名称相同,则不会打印。然而,我似乎不明白这是怎么回事


谢谢大家的帮助

这将无法提供您所需的输出。但也许这能起作用

select developer_name, group_concat(plot_number SEPARATOR ',') from developer inner join plot on plot.developer_id = developer.developer_id group by developer_name

然后,您可以从结果集中分解(PHP分解,逗号作为分隔符)绘图编号列,以显示与开发人员对应的所有绘图编号。

您可以分两步执行

1. to get developer name and id.
2. get all plots of that id

    $sql1 = "SELECT developer_id, developer_name FROM developers ";
    $res = mysqli_query($con, $sql1);
    while($row = mysqli_fetch_array($res))
    {
      $developer_id = $row['developer_id'];
      $developer_name = $row['developer_name'];

      echo $developer_name;

      $sql2 = "SELECT * FROM plots WHERE developer_id='$developer_id' ";
      $res2 = mysqli_query($con, $sql2);
      while($row2 = mysqli_fetch_array($res2))
      { 
         echo $row2['plot_id'];
      }
    }
使用左连接

Select * From developers Left Join plots on developers.developerid=plots.developerid
因此,它将从表开发人员中选择所有内容,对于每个开发人员,它应该选择绘图

使用if条件检查开发人员id的最后一个结果是否等于当前结果。如果为否,则打印id

编辑: 下面是PHP程序应该如何运行

$strSQL = "Select * From developers Left Join plots on developers.developerid=plots.developerid";
$Result = mysql_query($strSQL);
$DevID = "";
while ($Fields = mysql_fetch_array($Result))
    {
    if ($Fields["developerid"] != $DevID)
        {
        echo $Fields["developerid"];
        $DevID = $Fields["developerid"];
        }
    echo $Fields["plot_column"];
    }

您可以提供任何代码来显示您当前拥有的内容吗?选择developer\u name作为developerName,按plotNumber从tableName组中计算(plot\u number)plotNumber,并使用示例数据制作。您将如何检查最后的结果以将其与当前结果进行比较?最近对答案的编辑已经完成。if条件进行简单检查。谢谢。这是我在结尾$sql1=“SELECT developer\u id,developer\u name FROM developers”中使用的代码$res=mysqli_查询($dbc,$sql1);而($row=mysqli_fetch_数组($res)){$developer_id=$row['developer_id'];$developer_name=$row['developer_name'];echo$developer_name;$sql2=$mysqli_查询($dbc,$sql2);而($row2=mysqli_fetch数组($res2)){echo$row2['plot_number'];};然而,这真的是完成任务的最佳方式吗?