Как подсчитать получатель и отправитель непрочитанных сообщений в PHP
Я создаю скрипт подсчета непрочитанных сообщений получателя и отправителя в php mysqli. у меня есть одна проблема, я добавил скрипт sql count в свой существующий код, он не работает. отображение такого сообщения об ошибке
Fatal error: Call to a member function get_result() on boolean in C:\xampp\htdocs\demo\npm\cons.php on line 123
Я добавил код здесь
(SELECT from_id, COUNT(*) unread FROM pm WHERE to_id=? AND read='0' GROUP BY from_id)
эта проблема с кодом здесь
from_id, COUNT(*)
когда я удалил это рабочее, но отображающее одни и те же непрочитанные сообщения все от пользователей.
отображение тех же результатов, что и это
user1 unread message 2 user2 unread message 2 user3 unread message 2
Я хочу получить вот такие результаты
user1 unread message 2 user2 unread message 7 user3 unread message 4
мой ПМ таблице базы данных
id from_id to_id msg sent_date read 1 2 3 hi how are you? 2019-12-05 04:14:20 1 2 3 2 fine 2019-12-05 05:15:58 0 3 2 3 hi 2019-12-05 03:20:34 1 4 5 2 hi 2019-12-05 08:30:40 0
Вот мой исходный код
<?php if (isset($_SESSION['userid'])) { $session_id = $_SESSION['userid']; } $sql = "SELECT *, (SELECT username FROM users WHERE userid=from_id) AS from_username, (SELECT username FROM users WHERE userid=to_id) AS to_username, (SELECT username FROM users WHERE userid=?) AS my_username, (SELECT from_id, COUNT(*) unread FROM pm WHERE to_id=? AND read='0' GROUP BY from_id) FROM pm WHERE from_id = ? or to_id=? ORDER BY id DESC"; if ($stmt->prepare($sql)) { $stmt->bind_param('iiii', $session_id, $session_id,$session_id,$session_id); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { echo $row['from_username'] . " -> " . $row['to_username'] . "<br>"; echo 'User ' . $row['from_id'] . ' - ' . $row['unread']; } } ?>
Что я уже пробовал:
(SELECT from_id, COUNT(*) unread FROM pm WHERE to_id=? AND read='0' GROUP BY from_id)
Пожалуйста, кто-нибудь может мне помочь, я много пытался создать это. спасибо.
Richard MacCutchan
Где находится линия 123?