如何构建此数组以输出?

时间:2017-08-29 09:27:17

标签: php

我有以下函数从MySQL表中获取一些数据:

function readQuestion ($quizType, $questionId) {
  $data = array();
  $query = $this->dbConnection->query("SELECT * FROM $quizType WHERE id = $questionId");
  foreach ($query as $row) {
    var_dump($row);
  };
  echo $data
}

如何将所有返回的数据推送到数组中,其中每个成员都用数字索引?

我最后需要使用echo还是返回?他们似乎有同样的效果。

编辑:这是返回查询结果的正确方法吗?我把它传递给了前端。

 $questionData = $controller->readQuestion($quizType, $questionId);
 return $questionData;

3 个答案:

答案 0 :(得分:0)

一般来说,您的功能必须如下:

function readQuestion ($quizType, $questionId) {
  $data = array();
  $query = $this->dbConnection->query("SELECT * FROM $quizType WHERE id = $questionId");
  return $query; 
}

但是,您必须查看$query变量内的内容。如果它是数组 - 只返回这个数组,如果没有 - 也许它是一些迭代器,因此你必须检查它并尝试找到类似toArray之类的方法......否则,你必须做点什么像:

$data = [];
foreach ($query as $row) {
    $data[] = $row;
};
return $data;

现在您可以使用此功能,如:

var_dump(readQuestion($quizType, $questionId));

答案 1 :(得分:0)

查看有关如何保护数据的here

无论如何,正如我在评论中所说,你不能在数组上使用echo。你不能对var_dump的输出做任何事情。

更改var_dump($row);

$data[] = $row;

并更改echo $data;

return $data;

答案 2 :(得分:-1)

function readQuestion ($quizType, $questionId) {
  $data = array();
  $query = $this->dbConnection->query("SELECT * FROM $quizType WHERE id = $questionId");
  foreach ($query as $row) {
   $data=$row;
  };
  return $result;
}