php - 为什么没有从选择查询中获取所有记录?
问题描述
代码:
$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。为什么其他人不显示?
解决方案
@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>";
推荐阅读
- c# - 时间:2019-01-01 标签:c#mysqlincrementingnullerror
- javascript - UTF-8 到可读字符
- javascript - JS - For 循环推送数组
- ios - Xcode 按钮宽度
- r - 为什么标签在 R 的 `stars()` 中没有正确排列?
- javascript - 使用雄辩的 laravel 和 html 从下拉选择器中包含 id
- php - 带有按钮的行向服务器提交错误的数据
- java - Java - 对象类型的方法 getValue() 未定义
- html - 从 DiagrammeR 导出美人鱼图
- javascript - 如何仅使用 Javascript 打开并输入另一个选项卡