Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 函数仅返回带有mysqli查询结果的第一个数组值_Php_Arrays_Function_Mysqli_Return - Fatal编程技术网

Php 函数仅返回带有mysqli查询结果的第一个数组值

Php 函数仅返回带有mysqli查询结果的第一个数组值,php,arrays,function,mysqli,return,Php,Arrays,Function,Mysqli,Return,我的mysqli相关函数有一个小问题。代码如下: $query = "SELECT * FROM uploads"; if ($result = $mysqli->query($query)) { while ($row = $result->fetch_assoc()) { return $row; } 问题是,当我使用此函数时,$row似乎是一个数组,但其中只有来自查询结果的第一个值。 但如果我尝试返回var\u dump($row),函数将按预期显示数组

我的mysqli相关函数有一个小问题。代码如下:

$query = "SELECT * FROM uploads";
 if ($result = $mysqli->query($query)) {
   while ($row = $result->fetch_assoc()) {
     return $row;
  }
问题是,当我使用此函数时,
$row
似乎是一个数组,但其中只有来自查询结果的第一个值。 但如果我尝试
返回var\u dump($row)
,函数将按预期显示数组,并显示查询结果中的所有值。 请您解释一下为什么会发生这种情况,以及如何正确返回包含完整查询结果的数组。 谢谢

改变这一点:

while ($row = $result->fetch_assoc()) {
 return $row;
}
用于:

调用测试函数

$bbb=test();

foreach($bbb as $key){
   $dbTableColumn1 = $key['column1'];
   $dbTableColumn2 = $key['column2'];
   $dbTableColumn3 = $key['column3'];
   //...$variable = $key['ColumnOfYourTable'];
   $text .= $dbTableColumn1.'|'.$dbTableColumn2.'|'.$dbTableColumn3.'<br/>';
  //Whatever you want to output
}
$bbb=test();
foreach($bbb作为$key){
$dbTableColumn1=$key['column1'];
$dbTableColumn2=$key['column2'];
$dbTableColumn3=$key['column3'];
//…$variable=$key['ColumnOfYourTable'];
$text.=$dbTableColumn1.'|'。$dbTableColumn2.'|'。$dbTableColumn3.
; //不管你想输出什么 }

该函数仅用于提高可读性

这样的函数不应返回格式化数据。必须返回嵌套数组instead@YourCommonSense对不起,伙计,这取决于你想打印什么,如果你在返回数组时在数组外说return$row,这取决于你想打印什么。但问题是,有很多不同的打印格式。这是一种打印设备,而不是数据处理设备。请学习MVC。然后@YourCommonSense为了更好地理解你所说的,你可以给我一个例子(url)在得到嵌套数组后如何操作数据。为了学习如何使用正确的方法…谢谢。我会使用嵌套foreach。什么让你的答案更好?您只是返回一个object,应该返回什么?至少可以说,这很奇怪,首先序列化一个数组,然后立即反序列化它。在需要从数据库获取大量数据之后,这种方式似乎是最好的选择。
$data  = array();
$query = "SELECT * FROM uploads";
if ($result = $mysqli->query($query)) {
  while ($row = $result->fetch_assoc()) {
     $data[] = $row;
  }
}
return $data;
$data  = array();
$query = "SELECT * FROM uploads";
if ($result = $mysqli->query($query)) {
  while ($row = $result->fetch_assoc()) {
     $data[] = $row;
  }
}
return $data;