我需要做的是从我的数据库中收集每一行,并将每一行放到自己的数组中。
我想类似于$row1 (例如$rowrow号码),我试过这样做
$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];但回声似乎根本不起作用,我也不知道哪里出了问题?我试着修了大约两个小时,终于放弃了
发布于 2019-12-15 17:57:16
在您的示例中,由于您使用的是mysqli_fetch_assoc(),它将遍历表字段的所有行,如果将变量$row放在while循环中,则变量$row将具有与当前行相关联的数组。如果希望在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> 发布于 2019-12-15 18:06:02
其他人已经说过,如果使用mysqli_fetch_assoc(),您将得到一个关联数组(按列名索引)。
如果使用行($result)或使用(数字),则可以获得整数索引数组。
您还可以简化代码,这样如果使用(数字),就不必编写自己的while循环。该函数返回数组,就像您描述的那样。
发布于 2019-12-15 18:06:24
您可以简单地使用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];默认的提取样式是数字数组,因此您将得到一个数值列索引以及数字行索引。不需要任何循环。
https://stackoverflow.com/questions/59346355
复制相似问题