【问题标题】:Show DB In Array Using Foreach Loop使用 Foreach 循环在数组中显示数据库
【发布时间】:2018-03-17 06:03:53
【问题描述】:

我正在尝试使用 foreach 循环来显示我的数据库,但我总是出错。我想要的是打印每一行和每一列。我的代码是这样的:

$sql = "SELECT a.*, b.klasifikasi FROM kl_stre as b
        INNER JOIN data_latih as a
        ON a.id_stres = b.id_stres
        ORDER BY a.id_dl";

$result = mysqli_query($conn, $sql);

foreach ($result as $dt_train => $row_dt_train):

foreach ($row_dt_train as $attr => $attr_dt_train):
echo $result[$row_dt_train][$attr_dt_trian]; // this line is the problem
endforeach;

endforeach;

我得到的错误是

警告:第 43 行的 C:\xampp\htdocs\knn\array_db.php 中存在非法偏移类型

您介意解释一下这段代码有什么问题以及如何解决这个问题吗?

【问题讨论】:

  • 您的查询在哪里?
  • 如果您指出哪一行是 43 会有所帮助...但是我注意到回显行末尾的拼写错误 $attr_dt_trian 应该是 $attr_dt_train
  • 在我的第 43 行是我的 echo 语句来调用我的数组,给我一些时间来编辑我的帖子
  • 我很抱歉@Eelke,我犯了错误,但我已经编辑了
  • 你能发布转储数据吗

标签: php arrays database foreach


【解决方案1】:

您需要先检查您的查询

if (!$result) {
    die('query is not correct'.mysqli_error($conn));//$con is your database connection paste it after $result = mysqli_query($conn, $sql);
}

在获取记录之后,只需删除 foreach 并尝试使用 while() 循环

while ($row=mysqli_fetch_array($result)) {
    echo $row['your database field name'];
}

您的代码将是

$sql = "SELECT a.*, b.klasifikasi FROM kl_stre as b
        INNER JOIN data_latih as a
        ON a.id_stres = b.id_stres
        ORDER BY a.id_dl";

$result = mysqli_query($conn, $sql);
if (!$result) {
    die('query is not correct'.mysqli_error($conn));
}
while ($row=mysqli_fetch_array($result)) {
    echo $row['your database field name'];
}

【讨论】:

  • 非常感谢@RahulShrivasta,它对我有帮助
猜你喜欢
  • 2018-07-04
  • 2016-06-24
  • 1970-01-01
  • 2014-03-26
  • 2020-04-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-10
  • 2020-12-11
相关资源
最近更新 更多