使用php从数据库中回显结果仅返回1个结果

时间:2018-07-29 22:44:54

标签: php

最近我一直在尝试一个小项目,同时尝试提高自己的技能, 我正在尝试从数据库中获取结果并将数据返回到我的页面,我已经阅读了此问题,但并没有真正的帮助,

在显示代码让我稍作解释之前,我有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。

所以我想我的问题是出什么问题了,如何解决这个问题,对高级帮助非常有用。

1 个答案:

答案 0 :(得分:1)

由于将数据设置为相等的行,它只会返回最后一个ID

$data = $row;

因此,您将每行替换为最后一行。

我想您想要一个数组来代替,所以您可以这样做:

$data[] = $row;

然后打印出所有任务:

$task = $app->ShowOpenTasks();
print_r($task);

这将为您提供一系列结果。