цикл foreach выводит только последний элемент из массива - PullRequest
2 голосов
/ 06 июня 2019

Я сделал избранный стат, у которого есть несколько выходов.

Но когда я пытаюсь вернуть, он только возвращает последний.Вот мой код ...

$stmt->execute();
$row = $stmt->fetchAll();

$result = [];

foreach ($row as $fullName => $type) {
    $result['fullName'] = $type['name'] . ' ' .$type['lastname'];
    $result['class_type'] = $type['typ'];

    var_dump($result['fullName']);
}

return $result;

Мой var-dump возвращает 4 результата, но мой возврат возвращает мне только последние результаты из var dump.

Что я здесь не так делаю?

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Вам не нужно foreach, если вы правильно построили свой запрос:

SELECT CONCAT(name, " ", lastname) AS fullName, typ AS class_type FROM table_name

Затем просто извлеките все строки и верните их:

$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
0 голосов
/ 06 июня 2019

Вы переписываете значения в своем коде.Вам нужно отправить каждый результат в массив.См. Код ниже для справки.

$stmt->execute();
$row = $stmt->fetchAll();

$result = [ ];

foreach ($row as $fullName => $type) {
    $result[] = [
    'fullName' => $type['name'] . ' ' .$type['lastname'],
    'class_type' => $type['typ'] ];

   // var_dump($result['fullName']);
}

return $result;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...