Loading...
Приветствую, ребят. Есть такой вопрос. У меня есть таблица "ads". В ней есть колонка "status". В эту колонку вводится один из 4 параметров: "active, close, mod, banned" использую PDO, хочу вывести 4 счетчика одним запросом. Каким образом это сделать? Пример:
php
   $stmt = $go -> prepare('SELECT * FROM `ads` WHERE `id_user` = ? and `status` = ?');   $stmt -> execute([$uid, 'close']);   $count = $stmt->rowCount();  echo $count.' закрытых объявлений';  // Это один счетчик // А нужно что-то типа  echo $count[0].' закрытых объявлений'; echo $count[1].' активных объявлений'; echo $count[2].' модерируемых объявлений'; echo $count[3].' забаненных объявлений';   
Я могу сделать 4 запроса, но как по мне, это лишний мусор в коде. Есть ли какие-нибудь мысли?
Никак
________
посл. ред. 28.06.2021 в 19:26; всего 1 раз(а); by GooDLike
php
   $stmt = $go -> prepare("SELECT SUM(IF(status = 'close',1,0)) as close,SUM(IF(status = 'active',1,0)) as active,SUM(IF(status = 'mod',1,0)) as mod,SUM(IF(status = 'banned',1,0)) as banned FROM `ads` WHERE `id_user` = ?");   $stmt -> execute([$uid]);   $count = $stmt->fetch(PDO::FETCH_ASSOC); echo $count['close'].' закрытых объявлений'; echo $count['active'].' активных объявлений'; echo $count['mod'].' модерируемых объявлений'; echo $count['banned'].' забаненных объявлений';   

________
посл. ред. 28.06.2021 в 20:13; всего 5 раз(а); by Scammer
GooDLike (28.06.2021 в 19:24)
Никак

Почему?
TheWilf , Сам запрос отдебажишь, в теории должен работать.
Scammer , К сожалению не хочет,
php
   array(4) { ["close"]=> NULL ["active"]=> NULL ["mod"]=> NULL ["banned"]=> NULL   
TheWilf ,

примерно (ПРИМЕРНО!!!) так

выбираешь одним запросом весь массив столбца status

потом функцией array_count_value() считаешь, сколько в массиве элементов с тем или иным значением статуса
________
посл. ред. 29.06.2021 в 13:36; всего 2 раз(а); by Вилы Выкидные
Вилы Выкидные (29.06.2021 в 13:18)
TheWilf ,

примерно (ПРИМЕРНО!!!) так

выбираешь одним запросом весь массив столбца status

потом функцией count() считаешь, сколько в массиве элементов с тем или иным значением статуса

Спасибо, буду пробовать!
TheWilf , ты массив выбери и вардамп сюда дай если там немного, тут на месте попробуем разобрать
TheWilf , select status from ads where id_user = ...
________
посл. ред. 29.06.2021 в 13:27; всего 1 раз(а); by Вилы Выкидные
Онлайн: 1
Время:
Gen. 0.1013
(c) Bym.Guru 2010-2026