将MySQL行转换成单个数组

问题描述 投票:0回答:3

我需要做的是从数据库中收集每一行并将其放入自己的数组中

我以为类似于$ 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个小时,最终放弃了

php mysql mysqli fetch rows
3个回答
0
投票

在您的情况下,由于您正在使用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> 

0
投票

其他人已经声明,如果使用mysqli_fetch_assoc(),则会得到一个关联数组(按列名称索引)。

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

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


0
投票

您可以简单地使用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];

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

© www.soinside.com 2019 - 2024. All rights reserved.