Обучение/Помощь новичкам | PDO запрос
Приветствую, ребят. Есть такой вопрос. У меня есть таблица "ads". В ней есть колонка "status". В эту колонку вводится один из 4 параметров: "active, close, mod, banned" использую PDO, хочу вывести 4 счетчика одним запросом. Каким образом это сделать? Пример: Я могу сделать 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].' забаненных объявлений';
Никак
________
посл. ред. 28.06.2021 в 19:26; всего 1 раз(а); by GooDLike
________
посл. ред. 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
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 Вилы Выкидные
примерно (ПРИМЕРНО!!!) так
выбираешь одним запросом весь массив столбца status
потом функцией array_count_value() считаешь, сколько в массиве элементов с тем или иным значением статуса
________
посл. ред. 29.06.2021 в 13:36; всего 2 раз(а); by Вилы Выкидные
Вилы Выкидные (29.06.2021 в 13:18)
TheWilf ,
примерно (ПРИМЕРНО!!!) так
выбираешь одним запросом весь массив столбца status
потом функцией count() считаешь, сколько в массиве элементов с тем или иным значением статуса
TheWilf ,
примерно (ПРИМЕРНО!!!) так
выбираешь одним запросом весь массив столбца status
потом функцией count() считаешь, сколько в массиве элементов с тем или иным значением статуса
Спасибо, буду пробовать!
TheWilf , ты массив выбери и вардамп сюда дай если там немного, тут на месте попробуем разобрать
TheWilf , select status from ads where id_user = ...
________
посл. ред. 29.06.2021 в 13:27; всего 1 раз(а); by Вилы Выкидные
________
посл. ред. 29.06.2021 в 13:27; всего 1 раз(а); by Вилы Выкидные