You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP & MySQL数据库查询仅显示单行,如何实现多行数据显示?

PHP查询MySQL仅显示一行数据的问题修复

问题描述

我用PHP和MySQL查询数据库表时遇到问题,原本希望展示表内所有数据,但目前仅能显示一行。以下是我的代码:

$query= mysqli_query($conn,"select* from food_table");
if (mysqli_num_rows($query)>0){

    echo "<p style='color: green;'>See Below the Available Foods<br></p>";

    while($row=mysqli_fetch_assoc($query)){

        $food_name= $row['food_name'];
        $food_info = $row['food_info'];
        $food_price = $row['food_price'];
        $vendor_id = $row['vendor_id'];
        $default_miles = $row['default_miles'];
        $food_date= $row['date'];
        
    }

$foods= array($food_name,$food_info,$food_price,$vendor_id,$default_miles, $food_date );

    foreach($foods as $foodss){

        echo "$foodss.<br/>";
    }
}

当前结果:仅能输出表中最后一行数据的各个字段值,无法显示所有行内容。

错误原因

问题出在循环逻辑位置错误:

  • while循环中每次都会覆盖$food_name、$food_info等单个变量的值,循环结束后这些变量仅保存了最后一行的数据。
  • 后续将这些单个变量存入数组$foods并遍历,自然只能输出最后一行的字段内容。

修复方案

方案1:循环内直接输出(最简实现)

把输出逻辑放到while循环内部,每遍历一行就输出该行数据:

$query= mysqli_query($conn,"select* from food_table");
if (mysqli_num_rows($query)>0){
    echo "<p style='color: green;'>See Below the Available Foods<br></p>";

    while($row=mysqli_fetch_assoc($query)){
        // 输出当前行的所有字段
        echo $row['food_name'] . "<br>";
        echo $row['food_info'] . "<br>";
        echo $row['food_price'] . "<br>";
        echo $row['vendor_id'] . "<br>";
        echo $row['default_miles'] . "<br>";
        echo $row['date'] . "<br><hr>"; // 加分隔线区分不同数据行
    }
}

方案2:存入二维数组后统一输出

先将所有行数据存入二维数组,再遍历数组统一输出,适合需要对数据做二次处理的场景:

$query= mysqli_query($conn,"select* from food_table");
$allFoods = []; // 定义二维数组存储所有数据行
if (mysqli_num_rows($query)>0){
    echo "<p style='color: green;'>See Below the Available Foods<br></p>";

    while($row=mysqli_fetch_assoc($query)){
        // 将当前行数据添加到二维数组
        $allFoods[] = $row;
    }

    // 遍历二维数组输出所有内容
    foreach($allFoods as $food){
        echo $food['food_name'] . "<br>";
        echo $food['food_info'] . "<br>";
        echo $food['food_price'] . "<br>";
        echo $food['vendor_id'] . "<br>";
        echo $food['default_miles'] . "<br>";
        echo $food['date'] . "<br><hr>";
    }
}

内容的提问来源于stack exchange,提问作者Jefferson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:00:52