Как выбрать поля и считать для каждого поля в SQL?

0

У меня есть таблица SQL, называемая сообщениями. Я хочу выбрать имена пользователей DISTINCT из таблицы, которые отправляют любое сообщение получателю, у которого был идентификатор ($ uid), а также выберите COUNT(message) для каждого отправителя, используя однострочный запрос.

Я пробовал этот код:

$query="SELECT DISTINCT clientname,user_id,user1pic, COUNT("SELECT id FROM messages WHERE clientname=clientname) AS counted FROM messages WHERE receiver=$uid and status='unread' ";
$messages=mysqli_query($cnx,$query);
while($row=mysqli_fetch_array($cnx,$messages)){

echo '<a class="example" > '.$row['clieenter code herentname'].''.$row['counted'].'</a>' ;}
if(mysqli_num_rows($cnx,$messages)<=0){
    echo '<a class="example" href="#">You Have No Messages</a>' ;
}
  • 0
    Пожалуйста, сделайте это последовательным вопросом, включив образцы данных таблицы вместе с ожидаемым результатом.
  • 0
    Подсказка: GROUP BY . Образцы данных и желаемые результаты также помогут.
Показать ещё 2 комментария
Теги:
mysqli

1 ответ

0
Лучший ответ

Попробуйте следующее:

SELECT 
  clientname,
  user_id,
  user1pic, 
  COUNT(1) AS counted 
FROM 
  messages 
WHERE 
  receiver=:uid 
  and status='unread'
Group by
  clientname,
  user_id,
  user1pic;

Я заменил вашу встроенную PHP-переменную параметром-заполнителем - используйте привязку параметров, чтобы избежать SQL-инъекции.

  • 0
    Тааанкс работал,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню