当我使用mysqli_fetch_array()
时,我得到一个数组,但我该如何读取这些值? While-Loop是唯一的选项,还是我可以从行和列中选择任何值,就像具有row[0] column [3]
索引的多维数组一样?
答案 0 :(得分:2)
while
循环每次迭代都会提取一行。
您可以使用mysqli_fetch_all
之后,您可以使用[rowNum][colNum]
但要注意,当你的结果有很多行时 - 数组可能非常大并导致内存或其他问题。
更新以澄清:
如果您想要接收多维数组的行,则有两种方式:
首先:使用fetch_assoc
/ fetch_array
迭代mysqli_result并将行追加到数组:
$rows = array();
while ($row = mysqli_fetch_array($res)) {
$rows[] = $row;
}
echo $rows[0]['whatever'];
第二:通过一次函数调用接收所有结果:
$rows = mysqli_fetch_all($res, MYSQLI_ASSOC);
echo $rows[0]['whatever'];
这就是全部。没有更多方法可供使用。
答案 1 :(得分:1)
这取决于您从数据库返回结果的方式。
你的mysqli_fetch_array函数中有标志,你可以设置它来修改你的返回结果。
如果您使用$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
或在OOP $row = $result->fetch_array(MYSQLI_ASSOC);
然后您可以在while循环中将您返回的结果作为列名称访问,例如$ row [' name']或$ row [' age']
或者,如果您使用$row = mysqli_fetch_array($result, MYSQLI_NUM);
或在OOP $row = $result->fetch_array(MYSQLI_NUM);
然后你可以像$ row [0]或$ row [3]
一样在while循环中访问你返回的结果简单的例子是
while($row = mysqli_fetch_array($result)) {
echo $row['name'] . " " . $row['age'];
}
了解更多信息。阅读PHP.net Fetch Array
答案 2 :(得分:0)
您的问题表明您的目标只是获得单一价值。如果是这种情况,您应该将查询限制为仅返回您要查找的内容而不是获取所有内容,然后使用PHP在结果中找到您想要的内容。
对于列,指定所需的一列而不是*
,(SELECT one_column FROM your_table)
,对于该行,使用WHERE
子句选择特定的ID(前提是在您的表上定义)或使用LIMIT
子句从结果集中选择特定的行号。然后您不必获取循环或获取所有。您的查询结果(如果它&# 39;成功)只有一行有一列,你可以获取一次并获得你的价值。
当然,如果你需要反复做这件事(即在一个循环中),那么这不是最佳方法。