Обучение/Помощь новичкам | PDO запрос
Приветствую, ребят.
Есть такой вопрос.
У меня есть таблица "ads". В ней есть колонка "status". В эту колонку вводится один из 4 параметров: "active, close, mod, banned"
использую PDO, хочу вывести 4 счетчика одним запросом.
Каким образом это сделать?
Пример:
Я могу сделать 4 запроса, но как по мне, это лишний мусор в коде. Есть ли какие-нибудь мысли?
Есть такой вопрос.
У меня есть таблица "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
________
посл. ред. 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 Вилы Выкидные