为了账号安全,请及时绑定邮箱和手机立即绑定

将 MySQL 行转换为单个数组

将 MySQL 行转换为单个数组

PHP
繁华开满天机 2022-06-17 16:18:53
我需要做的是从我的数据库中收集每一行并将每一行放入自己的数组中我想像 $row[1][1] 之类的东西(例如 $row[row number][column number]),我试过了$query = "SELECT * FROM `table`;";$result = mysqli_query($link, $query);$Array = array();$index = 0;while($row = mysqli_fetch_assoc($result)) {    $Array[$index] = $row;    $index++;}echo $row[1][1];但是回声似乎根本不起作用,我不知道哪里出错了?我一直在尝试修复它大约 2 小时,最终放弃了
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

在您的情况下,由于您正在使用mysqli_fetch_assoc()它将遍历表字段的所有行,并且$row如果您将其放入while循环中,该变量将具有与当前行关联的数组。如果您想在while循环之外访问它,您可以使用您在上面创建另一个数组的方法。在这种情况下,您仍然需要按名称引用该字段:


<?php 

$query = "SELECT * FROM `table`";

$result = mysqli_query($link, $query);

$Array = array();

?>

<pre>

<?php   

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

    $Array[] = $row;

}

print_r($Array[1]['your_field']);

?>

</pre> 


查看完整回答
反对 回复 2022-06-17
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

其他人已经说过,如果您使用mysqli_fetch_assoc().

如果您使用mysqli_fetch_row($result)或使用mysqli_fetch_array($result, MYSQLI_NUM) ,则可以获得整数索引数组。

如果您使用mysqli_fetch_all($result, MYSQLI_NUM) ,您还可以简化代码,这样您就不必编写自己的 while 循环。就像您描述的那样,该函数返回一个数组数组。


查看完整回答
反对 回复 2022-06-17
?
富国沪深

TA贡献1790条经验 获得超9个赞

您可以简单地使用fetch_all(). 例如:


<?php


mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$link = new mysqli('localhost', 'username', 'password', 'databaseName');

$link->set_charset('utf8mb4'); // always set the charset


$query = "SELECT * FROM `table` ";

$result = $link->query($query); // If variables are involved you must use prepare/bind_param/execute


$matrixOfRowsAndCols = $result->fetch_all();


echo $matrixOfRowsAndCols[1][1];

默认获取样式是数字数组,因此您将获得数字列索引以及数字行索引。不需要任何循环。


查看完整回答
反对 回复 2022-06-17
  • 3 回答
  • 0 关注
  • 315 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信