• Как составить данный sql запрос?

    @alexalexes
    1. Пробовали гуглить "sql having count"?
    2.
    ... FROM orders
    inner join Client on ClientID=ClientID

    При попытки выполнения запроса вы получите ошибку, потому что интерпретатору запросов не будет понятно из какой таблички брать ClientID в части on.
    Гуглите, либо как задавать псевдонимы к таблицам и использовать их вместе с атрибутами, либо гуглите не совсем часто встречающуюся конструкцию join ... using вместо join ... on.
    3.
    OrderDate like “2015%”

    Хоть в редакторе для работы с базой данных вы видите дату как приведенную к формату строку, не стоит в запросе к ней относится как к строке. Ищите функции, которые получают из атрибута даты (или дата-время) отдельно номер года как число.
    А еще лучше, если вы будете понимать "за 2015 год" как указание задать интервал времени в запросе от 1 января 2015 до 1 января 2016 (не включительно). Тогда планировщику запросов будет легче его оптимизировать для быстрого выполнения, при условии, что атрибут OrderDate имеет индекс.
  • Зачем вложенные "namespace"?

    @alexalexes
    Нет, не станешь роботом. Использование стандартов заставит программиста мыслить не в пределах монолита в 1000 строк, а в пределах всей архитектуры проекта. Правильно выделить сущности бизнес-логики и находить ошибки на уровне бизнес-логики (слово "бизнес" тут не про форму предприятия, а прямой синоним "предметная область").
  • Подсчёт кол-ва детей у сотрудников access?

    @alexalexes
    Если нужно локальное кол-во посчитать, то в count подставляют * от присоединяемой таблицы, но, обычно, достаточно первичного ключа. В вашем случае бы подошло:
    count(ch.id) as Child_Count -- кол-во детей по идентификатору таблицы Дети

    Но Id вам недоступно, тогда подставляем все поля, которые определяют уникальность записи по сотруднику (код сотрудника можно не подставлять). Работать запрос с distinct будет чуть медленнее, чем с id.
    count(distinct ch.`Фамилия`, ch.`Имя`, ch.`Отчество`, ch.`Дата рождения`) as Child_Count -- кол-во детей по группе уникальных полей по таблице Дети, без использования идентификатора
  • Как сделать кастомные пагинации?

    @alexalexes
    В этой функции забыл еще одну закрывающуюся скобку
    .... esc_url( get_pagenum_link($prev_page_num));
     .... esc_url( get_pagenum_link($next_page_num));


    Можно как-то с вами связаться чтобы вы посмотрели код? Может телеграм есть

    Я на этот ресурс прихожу писать в режиме "дать совет", а не заниматься работой фрилансера.
    Предполагается, что человек, написавший вопрос, обладает необходимыми навыками, чтобы проинспектировать и отладить до конца то, что предлагают в ответах. Если что-то совсем не то получается, то говорят что выявлено при такой отладке.
  • Зачем вложенные "namespace"?

    @alexalexes
    Работодателю важно, чтобы скорость разработки не падала из-за того, что некоторые разработчики мыслят нестандартно, и пытаются придумать свои велосипеды в архитектуре.
    Разбираться он будет не сам, а путем делегирования полномочий техническим специалистам как внутри принятого на работу коллектива, так и при найме в этот коллектив. Тестовые задания и сама методика отбора, которые проходят кандидаты на должности разработчиков как раз результат деятельности таких помощников.
  • Зачем вложенные "namespace"?

    @alexalexes
    Если вы собираетесь делать продукт для собственных нужд, не выводить его на коммерческие рельсы, не приглашать к себе других специалистов. Не собираетесь делать его для портфолио, чтобы продемонстрировать потенциальному работодателю, что вы можете работать в команде таких же специалистов. То можно реализовывать как угодно.
  • Зачем вложенные "namespace"?

    @alexalexes
    Больше чем подсказка, отступление от этого принципа - это будет антишаблон, если в проекте уже приняты стандартные правила.
  • Жесткий диск во время работы издаёт звук (такой как при включени и выключении) - «высокочастотный свист». Что может быть причиной?

    @alexalexes
    Посмотрите через HD Tune параметры 05 и C5 таблицы SMART. Если там появились не нулевые значения этих параметров, значит деградация началась.
    Еще признаки деградации можно отследить, если запустить в режиме записи бенчмарк. Но это приведет к потере существующих данных на диске. В качестве щадящей проверки можно воспользоваться файловым бенчмарком - он не даст полной картины, так как тест будет проводится на записываемом файле на свободном участке диска. Но если все очень плохо, то и он покажет нестабильную скорость записи.
  • Зачем вложенные "namespace"?

    @alexalexes
    Нет, не как отступы.
    Это как переход с ассемблера на высокоуровневый язык.
    Зачем вам высокоуровневая конструкция for, когда на низком уровне можете сами сделать свой счетчик на регистре и условный переход?
    На высоком уровне удобней писать более короткие инструкции, а всю рутинную работу по переводу на низкий уровень сделает компилятор. В этом главное преимущество.
    Использование вложенных пространств дает возможность написать изолированный функционал в модуле, который состоит не из одного файла, а имеет кучу зависимостей с другими модулями. У крупных проектов этих зависимостей столько, что невозможно отслеживать их вручную. Для их контроля используют автосборщики проектов (наверное, вы слышали про composer), благодаря иерархической структуре пространств имен, их можно соотнести с каталогами, где находятся модули. Это упрощает автоматизацию управления зависимостями в модулях.
    Вообще, есть целая матрешка стандартов PSR-0...4. Они как раз про то, как организовать каркас проекта, чтобы он управлялся такими сборщиками и был удобно поддерживаемым.
  • Почему более одной записи из скрипта в базу?

    @alexalexes
    $sql="select login,id,ip from web_users where (now() - online) > interval '".($timeout*60)."' AND session_id!=''";
    $res=$db->query($sql);
    while($arru=$res->fetch(PDO::FETCH_OBJ)){
      $db->query("INSERT INTO events (event_date,event_time,ip_client,user_id,user_login,event_type,event_place,event_note,event_status,title) VALUES
                    ('" . date("Y-m-d") . "','" . date("H:i:s") . "',''," .$arru->id . ",'" .  $arru->login . "',1,'','<tr><td>выход по таймауту</td></tr>',1,'')");
    }
    
    $db->query("UPDATE web_users SET online='1970-01-01 00:00:00.000000', session_id='' WHERE (now() - online) > interval '".($timeout*60)."'");

    Этот кусок кода ищет пользователей, которые имеют сессионный идентификатор и время жизни сессии выбежало за интервал. Заносит каждого неустарённого пользователя в ивенты.
    Потом апдейтом устаревает их путем зануления идентификатора сессии и откатом времени онлайн в начало времен.
    Что тут не так.
    1) Этот кусок кода с взаимодействием с бд нужно как можно быстрей выполнить от момента выборки неактуальных пользователей до момента их перевода в неактуальное состояние, с занесением в журнал. Лучше перед выборкой объявить No_auto_commit, чтобы любое обращение в базу не прерывало транзакцию. После update завершить транзакцию командой commit и вернуть режим выполнения последующих запросов в auto_commit. А вы зачем-то while притормозить хотите, тут лететь нужно со скоростью пули от select до Update, причем в рамках одной транзакции.
    2) Вы берете разные источники времени и разные моменты его получения для получения выборки пользователей, фиксации события и обновления состояния пользователей. В select-е и update у вас now() - источник времени базы данных, а в журнал событий вы заносите время из PHP. Если сервер с PHP и базой на разных железках, то время не будет идти одинаково.
    Еще, если притормозить while, то now() в апдейте будет не то now() как в селекте (про date() в php вообще молчу). Вы можете устареть пользователей, которые не попадут в журнал.
    Чтобы выйти из положения, время лучше вывести отдельным полем из select-а и его значение использовать и в журнале и в апдейте.
    3) Проверьте, работает ли запрос с update. Если он выпадает в ошибку, то этот кусок кода с каждым новым запуском будет пытаться заносить в журнал тех же самых пользователей и пытаться их устареть снова и снова.
    PS можно не оборачивать в транзакцию пункт 1. Можно даже журналировать по времени php. Но время из селекта нужно обязательно извлечь и использовать в update вместо now().
  • Как вернуть данные после обработки POST?

    @alexalexes
    Вы отправляете данные формы обычным submit формы или используете ajax?
  • Как получить возвращенный результат в виде словарь в SQL?

    @alexalexes
    Приведите пример, какую выборку вы имеете и какую хотите получить на выходе.
    Не обязательно с реальными названиями атрибутов и значениями.
  • .htaccess: как перенаправить на правильный URL?

    @alexalexes
    В блоге возможен только параметр категории, или нужно перенаправлять все, что обращается в раздел сайт/blog?
  • Как сделать случайное имя пользователя?

    @alexalexes
    Еще нужно обеспечить 100% уникальность.
  • Как сделать случайное имя пользователя?

    @alexalexes
    Пишите триггер на вставку данных, в котором будете генерировать username по любому удобному правилу в рамках процедурного кода хранимых функций, либо игнорируя значение от insert, либо когда это новое значение null. Уникальность поля можно обеспечить constraint-ом.
  • Как вызвать хранимую процедуру через view?

    @alexalexes
    возвращаться итоговый результат

    Какого типа возвращаемый результат и сколько переменных он имеет?
  • Есть ли разница куда ставить SSD?

    @alexalexes
    Согласен, зависит от реализации конкретной материнской платы. Если производитель оптимизирует внутреннюю шину данных (сэкономит на чипсете), то разные разъемы будут работать с разными версиями Sata.
  • Как преобразовать двумерный массив в строку с помощью sql?

    @alexalexes
    Ну тогда используйте хранимые функции и процедуры в качестве костылей-преобразователей.