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

如何显示数组中的全部数据?从PHP函数获取数组后显示遇到问题

解决PHP函数返回并显示全部数组数据的问题

嘿,我来帮你搞定这个显示全部数组数据的问题~首先看你的函数代码,最后应该是写了一半的fetch_assoc()吧?这个方法只会返回结果集中的单行数据,这就是你没法看到全部数据的原因。下面给你两种修正方案,以及如何显示拿到的所有数据:

方案一:用fetch_all()一次性获取所有行

这是最简洁的方法,直接把查询到的所有结果转换成二维关联数组返回:

public function izpis_narocil($user) {
    $sql = "SELECT * FROM nabava WHERE id_uporabnika=?";
    if( !$this->stmt = $this->mysqli->prepare($sql) ) 
        throw new Exception("MySQL Prepare statement failed: ".$this->mysqli->error);
    $this->stmt->bind_param("i", $user);
    $this->stmt->execute();
    $result = $this->stmt->get_result();
    if( $result->num_rows == 0) 
        return []; // 返回空数组比空字符串更合理,方便后续判断数据是否存在
    // 一次性获取所有关联数组格式的结果
    return $result->fetch_all(MYSQLI_ASSOC);
}

方案二:循环遍历存入数组(兼容旧版本PHP)

如果你的PHP版本比较老(不支持fetch_all()),可以用循环逐行读取结果并存入数组:

public function izpis_narocil($user) {
    $sql = "SELECT * FROM nabava WHERE id_uporabnika=?";
    if( !$this->stmt = $this->mysqli->prepare($sql) ) 
        throw new Exception("MySQL Prepare statement failed: ".$this->mysqli->error);
    $this->stmt->bind_param("i", $user);
    $this->stmt->execute();
    $result = $this->stmt->get_result();
    $narocila = [];
    // 循环读取每一行,存入数组
    while ($row = $result->fetch_assoc()) {
        $narocila[] = $row;
    }
    return $narocila; // 无论有没有数据都返回数组,空数组代表无结果
}

如何显示全部数据

调用修正后的函数后,你可以用以下方式展示数据:

开发调试用(快速查看结构)

// 假设你已经实例化了数据库类
$user_id = 123; // 替换成实际的用户ID
$narocila = $db->izpis_narocil($user_id);

// 用print_r格式化输出数组结构
echo '<pre>';
print_r($narocila);
echo '</pre>';

生产环境用(格式化展示内容)

$user_id = 123;
$narocila = $db->izpis_narocil($user_id);

if (empty($narocila)) {
    echo "暂无订单数据哦~";
} else {
    foreach ($narocila as $order) {
        echo "<div class='order-item'>";
        echo "订单ID:{$order['id']}<br>";
        echo "商品名称:{$order['naziv']}<br>"; // 替换成你表中的实际字段
        echo "下单时间:{$order['datum']}<br>";
        echo "</div><hr>";
    }
}

简单总结下:原来的代码只返回了第一行数据,现在通过fetch_all()或者循环遍历,就能拿到所有订单的二维数组,之后不管是调试还是格式化展示都很方便啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:06:12