Loading...
может оператор in можно использовать? и fetchAll
Вилы Выкидные (29.06.2021 в 13:18)
TheWilf ,

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

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

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

А sql не умеет разве считать это?) И быстрее и проще
TheWilf (29.06.2021 в 12:24) Scammer , К сожалению не хочет,
php
   array(4) { ["close"]=> NULL ["active"]=> NULL ["mod"]=> NULL ["banned"]=> NULL   
Проверяй тогда данные в таблице какие или условие where, так как проверил на другой таблице и вот.. Возможно статус колонку не так задал, но если там NULL выдало, кажется для пользователя просто нету данных к выводу и все https://i.imgur.com/2EvUgWA.png
________
посл. ред. 29.06.2021 в 13:41; всего 1 раз(а); by Scammer
https://i.imgur.com/Mdaxmdd.png
Вилы Выкидные (29.06.2021 в 13:18)
TheWilf ,

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

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

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

Руки бы оторвать таким кодерам кто так делает ))
А потом на запуск одной итерации скрипта уходит овер много озу и процессорного времени :_)
Хотя секунду там mod это зарезервированное слово, попробуй этот код
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'].' забаненных объявлений';   
Scammer (29.06.2021 в 13:43)

Руки бы оторвать таким кодерам кто так делает ))
А потом на запуск одной итерации скрипта уходит овер много озу и процессорного времени :_)


PHP быстрее разберёт массив, который ему из БД прилетит, чем запрос к БД, который не будет обрабатывать следующий в очереди запрос от другого пользуна, пока не обработает всю ту логику, которую ты засунул в него, нельзя логикой запросы нагружать, PHP тебе тогда для чего, для echo? :-D
Вилы Выкидные (29.06.2021 в 14:01)


PHP быстрее разберёт массив, который ему из БД прилетит, чем запрос к БД, который не будет обрабатывать следующий в очереди запрос от другого пользуна, пока не обработает всю ту логику, которую ты засунул в него, нельзя логикой запросы нагружать, PHP тебе тогда для чего, для echo? :-D

Запрос который при повторном вызове выдаст кеш или скрипт который сожрет ресурсы и дольше будет выполняться)
Ради интереса покажу сейчас тестовый стенд)
Вилы Выкидные (29.06.2021 в 14:01)


PHP быстрее разберёт массив, который ему из БД прилетит, чем запрос к БД, который не будет обрабатывать следующий в очереди запрос от другого пользуна, пока не обработает всю ту логику, которую ты засунул в него, нельзя логикой запросы нагружать, PHP тебе тогда для чего, для echo? :-D

И почему бд не будет обрабатывать следующий запрос ?) БД не однопоточная, а запрос не блокирующий
Scammer (29.06.2021 в 13:50) Хотя секунду там mod это зарезервированное слово, попробуй этот код
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'].' забаненных объявлений';   
php
   $stmt = $go->prepare('select `status` from `ads` where `id_user` = ?'); $stmt->execute([$uid]);  $count = array_count_value($stmt->fetchAll());  echo $count['close'].' закрытых объявлений'; echo $count['active'].' активных объявлений'; echo $count['mod'].' модерируемых объявлений'; echo $count['banned'].' забаненных объявлений';   
писал вслепую, нужно дебажить
________
посл. ред. 29.06.2021 в 14:06; всего 1 раз(а); by Вилы Выкидные
Онлайн: 2
Время:
Gen. 0.1232
(c) Bym.Guru 2010-2026