Я использую следующий SQL-запрос для извлечения содержимого из таблиц сообщений , пользователей и комментариев
Когда я запускаю запрос в базе данных, он правильно возвращает значение 14 для столбца «ID» в результате.
Однако, используя PHP mysqli, он возвращает 1, а иногда 2 . Может ли кто-нибудь увидеть какие-либо проблемы с запросом? Я смотрел на него часами, и я действительно не хочу делать отдельный запрос, чтобы получить правильное значение ID.
SELECT * FROM posts LEFT OUTER JOIN comments ON posts.ID = comments.comment_post_id AND comments.comment_approved = 1 LEFT OUTER JOIN users ON users.ID = posts.post_author WHERE posts.ID = '14' AND posts.post_type = 'post' AND posts.post_status = 'publish' ORDER BY comments.comment_ID DESC
Код PHP:
while ($thisResult = $result->fetch_array(MYSQLI_ASSOC)) { echo $thisResult['ID']; // returns 1 echo $thisResult['post_title']; // returns the correct post title }
Несколько таблиц в вашем запросе имеют столбец ID
. Используйте полевые псевдонимы вместо *
в select
. Например,
SELECT posts.id as post_id, ..... FROM posts ....
Или вы можете получить правильный идентификатор, используя $thisResult[0]
(предполагая, что id является первым столбцом в таблице posts
)