簡體   English   中英

MVC 查詢不會從數據庫中獲取所有記錄

[英]MVC Query doesn't fetch all records from the database

數據庫存儲了幾個帳戶:[winnie, winnie9, winnie10],但是當我獲取數據時,查詢只返回一條記錄。 解決辦法是什么?

模型方法:

protected function getApprovedUsers($login) {
        $sql = "SELECT `email`, `login`, `name`, `reg_date`, `pass`, `role` FROM `approved` WHERE `login` LIKE ?";
        $stmt = $this->connect()->prepare($sql);

        $stmt->execute([$login]);

        if($users = $stmt->fetchAll())
            return $users;

        return null;
    }

控制器對模型的調用:

    public function getCertainApprovedUser($login) {
        $users = $this->getApprovedUsers($login);

        if(is_array($users) || is_object($users)) {
            foreach ($users as $user) {
                return array("email"=>$user["email"], "login"=>$user["login"], "pass"=> $user["pass"],
                    "name"=> $user["name"], "reg_date"=> $user["reg_date"], "role"=> $user["role"]);
            }
        }
        else {
            throw new Exception("Nothing to fetch");
        }
    }
}

處理數據以使 LIKE 語句正常工作 (%%):

$record = $userContr->getCertainApprovedUser("%$login%");

$someJSON = array(
    [
        "login"=>"{$record['login']}",
        "email"=>"{$record['email']}",
        "name"=>"{$record['name']}",
        "reg_date"=>"{$record['reg_date']}"
    ]
);

$newJSON = json_encode($someJSON);
echo $newJSON;

getCertainApprovedUser()方法中,您將在 foreach 中返回一個值。 這會在第一次迭代時立即中斷循環。

將您的循環更改為:

$result = []; // initialize an empty array
foreach ($users as $user) {
    // add a user to that array
    $result[] = array("email"=>$user["email"], "login"=>$user["login"], "pass"=> $user["pass"], "name"=> $user["name"], "reg_date"=> $user["reg_date"], "role"=> $user["role"]);
}
// return the array containing the users
return $result;

然后,要構建您的 json,請應用相同的邏輯:

$someJSON = [];

foreach ($record as $user)
{
    $someJSON[] = [
        "login"=>$user['login'],
        "email"=>$user['email'],
        "name"=>$user['name'],
        "reg_date"=>$user['reg_date']
    ];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM