Проблема использования foreach в PHP для доступа к результатам запроса SELECT - PullRequest
0 голосов
/ 03 июля 2018

У меня есть простая таблица с именем people с тремя полями. В конце концов я хотел бы использовать результаты запроса SELECT для заполнения значений формы по умолчанию, но сейчас я просто пытаюсь повторить результаты запроса. Я много чего перепробовал, и теперь я получаю сообщение об ошибке «преобразование массива в строку» в строке 11 (echo). Вот что я пытаюсь:

<?php
 include 'connect_db.php';
 $stmt = $conn->query("SELECT * FROM people");
 $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
 foreach ($results as $key => $value) {
  echo $key . ':' . $value . '<br>';
 }  
?>

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

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Вы получите обратно ассоциативный массив для каждой строки. Ключами будут имена столбцов.

 include 'connect_db.php';
 $stmt = $conn->query("SELECT * FROM people");
 $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
 foreach ($results as $row) {
  echo $row['some_column_name'] . '<br>';
 }  

или

 include 'connect_db.php';
 $stmt = $conn->query("SELECT * FROM people");
 $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
 foreach ($results as $row) {
    foreach ($row as $key => $value){
       echo $key . ', ' . $value . '<br>';
    }
 }  
0 голосов
/ 03 июля 2018

Ваша проблема ясна, вы не можете отобразить массив, что означает, что вы можете попытаться использовать json_encode ($ value)

или

вы можете использовать print_r ($ value), а не echo

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