БД хранит несколько учетных записей: [winn ie, 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;