@green300

Какие могут быть вероятные причины, когда база данных не выдает ошибок и перестала выводить посты?

ни чего не трогал вроде...имеется вот такой запрос и он работал нормально, потом перестало все выводится не понимаю причины.
<?php	
		$stmt = $pdo->prepare('SELECT
							post.id,
							post.title,
							post.user_id,
							post.cat_id,
							users.username,
							category.name
							FROM post post
							INNER JOIN category
							ON post.cat_id = category.id
							INNER JOIN users
							ON post.user_id = users.id						
    						ORDER BY id DESC LIMIT 25');
		$stmt->execute(['id'=>id]);
		$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
		echo '<pre>';
			var_dump($res);
			echo '</pre>';
			exit;
		foreach ($res as $row){
			

		require __DIR__.'/article.php';
		}

при вардампе нулевой массив показывает..
64324df6afe6a034584089.png
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
0) Проверить лог ошибок или добавить в код выше
ini_set('error_reporting',E_ALL);
ini_set('display_errors', 1);
и убедиться что ошибок выполнения нет. Естественно, подключение должно быть настроено на вывод ошибок. Так же убрать бессмысленный биндинг $stmt->execute(['id'=>id]);, где внутри даже не переменная, а какая-то фигня...
1) Проверить запрос в консоли или в phpmyadmin
2) В случае если запрос ничего не выдает - удалить строки INNER JOIN category ON category.id=post.cat_id, выполнить запрос
3) Если выдает что-либо, значит таблица с категориями пострадала, проверить выведенные посты на номер категории, и посмотреть что стало с этими записями в таблице category.
4) Если не выводит - повторить пункт 3 со строкой INNER JOIN users ON post.user_id = users.id, со всеми вытекающими.
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Поменяйте запрос к виду:
'SELECT post.id, post.title, post.user_id, post.cat_id,  users.username, category.name
FROM post
LEFT JOIN category ON category.id=post.cat_id
LEFT JOIN users ON users.id=post.user_id
ORDER BY post.id DESC LIMIT 25'

и удивитесь, как поменялся var_dump().
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы