Всегда получает NULL при выполнении запроса

#php #html #mysql #sql

#php #HTML #mysql #sql

Вопрос:

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

Обратите внимание: неопределенная переменная: post в /Users/matt/Desktop/Likers/home/index.php в строке 54

Строка 54 является var_dump($post['id']); . В итоге я получаю NULL то, что должно происходить. Теперь вот как я выполняю запрос

 $qry = $con->prepare("SELECT * FROM posts WHERE post_user IN (SELECT follow_to FROM followers WHERE follow_from = :user)");
$qry->bindValue(':user', $username, PDO::PARAM_STR);
$qry->execute();

    $posts = array();
    while($row = $qry->fetch(PDO::FETCH_ASSOC)){
        $posts[] =  array(
        'post_user' => $row['post_user'],
        'id' => $row['id'],
        'post_date' => $row['post_date'],
        'post_likes' => $row['post_likes'],
        'post_content' => $row['post_content']
    );
    }   

var_dump($post['id']);
  

Так что я в принципе не получаю id . Хотя в моей базе данных у меня есть id

Комментарии:

1. $posts[0]['id'] or $posts[1]['id'] or $posts[2]['id'].... so on

2. @FerozAkbar Вы должны опубликовать это как ответ.

Ответ №1:

Вы определяете массив $posts[] , а затем выполняете сброс $post['id'] . Во-первых, $post должно быть $posts , а во-вторых, вы добавляете в массив, чтобы у него был индекс $posts[0]['id'] .

Ответ №2:

Вы получите массив записей типа

 $posts = array('0' => array('id' => 1), '1' => array('id' => 2));
  

Поэтому вам нужно найти значение id, используя его значение индекса или используя цикл foreach.

 foreach($posts as $post){
   var_dump($post['id']);
}