最近我一直在尝试一个小项目,同时尝试提高自己的技能, 我正在尝试从数据库中获取结果并将数据返回到我的页面,我已经阅读了此问题,但并没有真正的帮助,
在显示代码让我稍作解释之前,我有2个文件,findtask和函数。 在函数中,我有一些代码会偏离表的所有数据 然后,如果我从函数脚本返回的结果(应为id 1 2和3)中回显,则使用了while循环来抓取内容。尝试从只能获取最后一个结果的findtask脚本获取结果时,我的问题开始了。 >
<?php
public function ShowOpenTasks ()
{
//i leave usersemail blank, because i only want tasks to show on this page if there not assigned.
$query = "SELECT * FROM `tasks` WHERE `usersemail` = ''";
if(!$result = mysqli_query($this->db, $query)) {
exit(mysqli_error($this->db));
}
$data = [];
if(mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$data = $row;
echo $data['id'];
}
}
return $data;
}
?>
我的findtask页面是
require __DIR__ . '/lib/functions.php';
$app = new FunctionClass();
$task = $app->ShowOpenTasks();
echo $task['id'] //id being the name of the id table of the task.
由于某种原因,此人只会打开最后一个ID。
所以我想我的问题是出什么问题了,如何解决这个问题,对高级帮助非常有用。
答案 0 :(得分:1)
由于将数据设置为相等的行,它只会返回最后一个ID
$data = $row;
因此,您将每行替换为最后一行。
我想您想要一个数组来代替,所以您可以这样做:
$data[] = $row;
然后打印出所有任务:
$task = $app->ShowOpenTasks();
print_r($task);
这将为您提供一系列结果。