首页 > 解决方案 > 为什么没有从选择查询中获取所有记录?

问题描述

代码:

 $sql = "SELECT stop_id FROM routes WHERE busNumber= '" . $busNumber."'";
        $result = $conn->query($sql);
        
        if ($result->num_rows > 0)
        {
            echo $result->num_rows."records fetched"."<br>";
            while($row = $result->fetch_assoc())
            {
                $stop_id = $row["stop_id"];
                //break;
                $sql = "SELECT stop_name FROM stops WHERE stop_id = '" . $stop_id."'";
                $result = $conn->query($sql);
                        
                if ($result->num_rows > 0)
                {
                    // output data of each row
                    while($row = $result->fetch_assoc())
                    {
                        $stop = $row["stop_name"];
                        echo "stop is->".$stop."<br>";
                        $result_stops .= $stop;
                        $result_stops .= ";";
                        //break;
                    }
                } 
            }
            echo "stops are". $result_stops. "<br>";
        }
       


echo "end". "<br>";

结果:

3 records fetched<br>stop is->PATIA<br>stops arePATIA;<br>end<br>

这里从选择查询中获取了 3 条记录,
但是在 while($row = $result->fetch_assoc()); 循环没有运行,而不是 3 条记录,只有 1 条记录显示是 PATIA。为什么其他人不显示?

标签: phpsql

解决方案


@chinpin,这应该可以解决您的问题。正如我评论的那样,您正在用不同的结果覆盖您在外部“while”循环中使用的变量。

 $sql = "SELECT stop_id FROM routes WHERE busNumber= '" . $busNumber."'";
        $result = $conn->query($sql);
        
        if ($result->num_rows > 0)
        {
            echo $result->num_rows."records fetched"."<br>";
            while($row = $result->fetch_assoc())
            {
                $stop_id = $row["stop_id"];
                //break;
                $sql = "SELECT stop_name FROM stops WHERE stop_id = '" . $stop_id."'";
                $result2 = $conn->query($sql);
                        
                if ($result2->num_rows > 0)
                {
                    // output data of each row
                    while($row2 = $result2->fetch_assoc())
                    {
                        $stop = $row2["stop_name"];
                        echo "stop is->".$stop."<br>";
                        $result_stops .= $stop;
                        $result_stops .= ";";
                        //break;
                    }
                } 
            }
            echo "stops are". $result_stops. "<br>";
        }
       


echo "end". "<br>";

推荐阅读