pdo — перебирает fetchall, не зная полей переполнения стека

У меня есть простой запрос, который будет получать все из таблиц пользователей

$query = $this->pdo->prepare('SELECT * FROM `users`');
$query->execute();
return $query->fetchAll();

Тогда у меня будет цикл foreach, как

$results = $User->getUser();
foreach($results as $result){
echo $result['fname'];
echo $result['lname'];
}

Но есть ли способ отобразить каждое из полей без записи имени каждого поля?

3

Решение

Во-первых, исправьте возвращаемый fetchAll, чтобы указать стиль возврата следующим образом:

return $query->fetchAll(PDO::FETCH_ASSOC);

Затем вы можете использовать внутренний цикл с внешним циклом следующим образом:

//get the results
$results = $User->getUser();
//loop over the results, setting $result to an array representing each row
foreach($results as $result){
//loop over each $result (row), setting $key to the column name and $value to the value in the column.
foreach($result as $key=>$value){
//echo the key and value.
echo "{$key} = {$value}<br>";
}
}

Это выведет все столбцы и их значения независимо от того, какие столбцы есть в массиве. Следуя комментариям, вы можете увидеть, что я с помощью вашего кода зацикливаюсь на внешнем массиве, который является массивом каждой строки в запросе. Затем выполните цикл по массиву из каждой строки, получая имя столбца и значение в этом столбце. Пока я просто повторяю колонку и значение. Вы, вероятно, захотите сделать что-то большее, например, отразить это на столе или какова бы ни была ваша конечная цель.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]