count(ch.id) as Child_Count -- кол-во детей по идентификатору таблицы Дети
count(distinct ch.`Фамилия`, ch.`Имя`, ch.`Отчество`, ch.`Дата рождения`) as Child_Count -- кол-во детей по группе уникальных полей по таблице Дети, без использования идентификатора
.... esc_url( get_pagenum_link($prev_page_num));
.... esc_url( get_pagenum_link($next_page_num));
Можно как-то с вами связаться чтобы вы посмотрели код? Может телеграм есть
$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)."'");
2.
При попытки выполнения запроса вы получите ошибку, потому что интерпретатору запросов не будет понятно из какой таблички брать ClientID в части on.
Гуглите, либо как задавать псевдонимы к таблицам и использовать их вместе с атрибутами, либо гуглите не совсем часто встречающуюся конструкцию join ... using вместо join ... on.
3.
Хоть в редакторе для работы с базой данных вы видите дату как приведенную к формату строку, не стоит в запросе к ней относится как к строке. Ищите функции, которые получают из атрибута даты (или дата-время) отдельно номер года как число.
А еще лучше, если вы будете понимать "за 2015 год" как указание задать интервал времени в запросе от 1 января 2015 до 1 января 2016 (не включительно). Тогда планировщику запросов будет легче его оптимизировать для быстрого выполнения, при условии, что атрибут OrderDate имеет индекс.