Php 像多维数组一样从mysqli_fetch_数组读取数据?
当我使用Php 像多维数组一样从mysqli_fetch_数组读取数据?,php,mysqli,Php,Mysqli,当我使用mysqli\u fetch\u array()时,我得到了一个数组,但是我如何读取值呢?While循环是唯一的选项,或者我可以像多维数组一样从行和列中选取任何值,索引类似于行[0]列[3]?,而循环每次迭代都会获取一行 您可以使用多维数组获取所有行 之后,您可以使用pick your values与[rowNum][colNum] 但是,当您的结果有很多行时,请小心—数组可能非常大,并会导致内存或其他问题 更新以澄清: 如果要接收多维行数组,有两种方法: 首先:使用fetch\u as
mysqli\u fetch\u array()
时,我得到了一个数组,但是我如何读取值呢?While循环是唯一的选项,或者我可以像多维数组一样从行和列中选取任何值,索引类似于行[0]列[3]
?,而循环每次迭代都会获取一行
您可以使用多维数组获取所有行
之后,您可以使用pick your values与[rowNum][colNum]
但是,当您的结果有很多行时,请小心—数组可能非常大,并会导致内存或其他问题
更新以澄清:
如果要接收多维行数组,有两种方法:
首先:使用fetch\u assoc
/fetch\u数组
迭代mysqli\u结果,并将行追加到数组中:
$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'];
就这些。没有更多的方法可用。而循环会在每次迭代中获取一行
您可以使用多维数组获取所有行
之后,您可以使用pick your values与[rowNum][colNum]
但是,当您的结果有很多行时,请小心—数组可能非常大,并会导致内存或其他问题
更新以澄清:
如果要接收多维行数组,有两种方法:
首先:使用fetch\u assoc
/fetch\u数组
迭代mysqli\u结果,并将行追加到数组中:
$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'];
就这些。没有其他可用方法。这取决于您如何从数据库返回结果
mysqli_fetch_数组函数中有一些标志,您可以设置这些标志来修改返回的结果
如果使用$row=mysqli\u fetch\u数组($result,mysqli\u ASSOC)代码>或在OOP$row=$result->fetch_数组(MYSQLI_ASSOC)中代码>
然后可以在while循环中以列名的形式访问返回的结果,如$row['name']或$row['age']
或者如果使用$row=mysqli\u fetch\u数组($result,mysqli\u NUM)代码>或在OOP$row=$result->fetch_数组(MYSQLI_NUM)中代码>
然后可以在while循环中访问返回的结果,如$row[0]或$row[3]
简单的例子是
while($row = mysqli_fetch_array($result)) {
echo $row['name'] . " " . $row['age'];
}
以获取更多信息。阅读这取决于您如何从数据库返回结果
mysqli_fetch_数组函数中有一些标志,您可以设置这些标志来修改返回的结果
如果使用$row=mysqli\u fetch\u数组($result,mysqli\u ASSOC)代码>或在OOP$row=$result->fetch_数组(MYSQLI_ASSOC)中代码>
然后可以在while循环中以列名的形式访问返回的结果,如$row['name']或$row['age']
或者如果使用$row=mysqli\u fetch\u数组($result,mysqli\u NUM)代码>或在OOP$row=$result->fetch_数组(MYSQLI_NUM)中代码>
然后可以在while循环中访问返回的结果,如$row[0]或$row[3]
简单的例子是
while($row = mysqli_fetch_array($result)) {
echo $row['name'] . " " . $row['age'];
}
以获取更多信息。阅读你的问题表明你的目标仅仅是获得一个值。如果是这样的话,您应该将查询限制为只返回您正在查找的内容,而不是获取所有内容,然后使用PHP在结果中查找您想要的内容
对于列,指定所需的一列,而不是使用*
,(从您的\u表中选择一列)
,对于行,使用WHERE
子句选择特定id(前提是在表中定义的id),或使用LIMIT
子句从结果集中选择特定行号。这样您就不必在循环中获取或获取全部。您的查询结果(如果成功的话)将只有一行一列,您可以获取一次并获取您的值
诚然,如果您需要重复执行此操作(即循环),这并不是最佳方法。您的问题表明您的目标只是获得单个值。如果是这样的话,您应该将查询限制为只返回您正在查找的内容,而不是获取所有内容,然后使用PHP在结果中查找您想要的内容
对于列,指定所需的一列,而不是使用*
,(从您的\u表中选择一列)
,对于行,使用WHERE
子句选择特定id(前提是在表中定义的id),或使用LIMIT
子句从结果集中选择特定行号。这样您就不必在循环中获取或获取全部。您的查询结果(如果成功的话)将只有一行一列,您可以获取一次并获取您的值
诚然,如果您需要重复执行此操作(即循环),这并不是最好的方法。谢谢您的回答!所以我应该这样做?而($row=mysql\u fetch\u assoc($query)){$persons[]=$row;}是的,您可以。最后,您将拥有与mysqli\u fetch\u all
OK相同的数组,但是有更好的方法吗?我需要使用While循环将结果添加到数组中吗?更好的方法是做什么?像数组一样读取结果。但我猜是用$persons[2]['id'];我有第三排的身份证?谢谢你的回答!所以我应该这样做?而($row=mysql\u fetch\u assoc($query)){$persons[]=$row;}是的,您可以。最后,您将拥有与mysqli\u fetch\u all
OK相同的数组,但是有更好的方法吗?我需要使用While循环将结果添加到数组中吗?更好的方法是做什么?像数组一样读取结果。但我猜是用$persons[2]['id'];我得到了第三行的id?这是一个数组。您可以像读取任何其他数组一样从中读取数据…var\u dump($arr)
以查看w