PHP/MySQL | Помогите по MySQL
Нарыл в интернете + добавил отсебятину = не верно выводит. С меня на мороженко )
________
посл. ред. 02.03.2020 в 10:06; всего 1 раз(а); by GarDiz
php
// Счетчик заявок за сегодня public static function countAplicationsDay($id) { $db = Db::getInstance(); $query = $db->prepare('SELECT COUNT(*) FROM checkups WHERE user_id = ? and day(`dt`) = day(NOW()) '); $query->execute([$id]); return $query->fetchColumn(); } // Счетчик заявок всего public static function countAplicationsAll($id) { $db = Db::getInstance(); $query = $db->prepare('SELECT COUNT(*) FROM checkups WHERE user_id = ? '); $query->execute([$id]); return $query->fetchColumn(); } // Счетчик заявок за неделю с ПН public static function countAplicationsWeek($id) { $db = Db::getInstance(); $query = $db->prepare('SELECT COUNT(*) FROM checkups WHERE user_id = ? and WEEK(`dt`, 1) = WEEK(NOW(), 1) '); $query->execute([$id]); return $query->fetchColumn(); } // Счетчик заявок за прошлую неделю public static function countAplicationsWeekOut($id) { $db = Db::getInstance(); $query = $db->prepare('SELECT COUNT(*) FROM checkups WHERE user_id = ? and WEEK(`dt`, 1) = WEEK(date_add(now(), interval -1 WEEK)) '); $query->execute([$id]); return $query->fetchColumn(); } // Счетчик заявок за месяц public static function countAplicationsMonth($id) { $db = Db::getInstance(); $query = $db->prepare('SELECT COUNT(*) FROM checkups WHERE user_id = ? and month(`dt`) = month(now()) and year(`dt`) = year(now()) '); $query->execute([$id]); return $query->fetchColumn(); } // Счетчик заявок за прошлый месяц public static function countAplicationsMonthOut($id) { $db = Db::getInstance(); $query = $db->prepare('SELECT COUNT(*) FROM checkups WHERE user_id = ? and month(`dt`) = month(date_add(now(), interval -1 month)) and year(`dt`) = year(now()) '); $query->execute([$id]); return $query->fetchColumn(); } ________
посл. ред. 02.03.2020 в 10:06; всего 1 раз(а); by GarDiz
Некоторые счетчики вроде-бы верно выводят инфу, а некоторые 100% НЕ правильно
Вообще первый счетчик может неправильно выводить инфу
там лучше использовать DATE функцию, но другой момент запросы эти не кешируются
не пойму зачем тебе аж 6 методов когда можно сделать 1
________
посл. ред. 02.03.2020 в 12:44; всего 1 раз(а); by mir007
________
посл. ред. 02.03.2020 в 12:44; всего 1 раз(а); by mir007
mir007 ,
Понимаешь, я не программист. Делаю сайт, но из-за дефицита хороших кодеров приходится лепить из того что нагуглю.
Понимаешь, я не программист. Делаю сайт, но из-за дефицита хороших кодеров приходится лепить из того что нагуглю.
GarDiz , чуть упростил , но говнокод ))
________
посл. ред. 02.03.2020 в 13:21; всего 2 раз(а); by mir007
php
public static function countAplicationsAll($id ) { $db = Db::getInstance(); //вврдим параметр Day или Week от необходимости $query = QuertAll( ); $query->execute([$id]); return $query->fetchColumn(); } private function QuertAll($count = null) { switch($count) { //Счетчик за сегодня case "Day": $count = $db->prepare('SELECT COUNT(*) FROM checkups WHERE user_id = ? and day(`dt`) = day(NOW()) '); break; // Счетчик заявок за неделю с ПН case "Week": $count = $db->prepare('SELECT COUNT(*) FROM checkups WHERE user_id = ? and WEEK(`dt`, 1) = WEEK(NOW(), 1) '); break; //за прошлую неделю case "Week0ut": $count = $db->prepare('SELECT COUNT(*) FROM checkups WHERE user_id = ? and WEEK(`dt`, 1) = WEEK(date_add(now(), interval -1 WEEK)) '); break; // Счетчик заявок за месяц case "Month": $count = $db->prepare('SELECT COUNT(*) FROM checkups WHERE user_id = ? and month(`dt`) = month(now()) and year(`dt`) = year(now()) '); break; // Счетчик заявок за прошлый месяц case "MountAll": $count = $db->prepare('SELECT COUNT(*) FROM checkups WHERE user_id = ? and month(`dt`) = month(date_add(now(), interval -1 month)) and year(`dt`) = year(now()) '); break; // всего заявок default: $count = $db->prepare('SELECT COUNT(*) FROM checkups WHERE user_id = ? '); break; } return $count; } ________
посл. ред. 02.03.2020 в 13:21; всего 2 раз(а); by mir007
не влазиет все)) давно тут не был
mir007 , спасибо большое за помощь. Сейчас буду пробовать. Как смогу отблагодарить?
Ааа блин, не увидел это "чуть упростил , но говнокод"
Инфа же всё равно не верно будет выводиться ))
________
посл. ред. 02.03.2020 в 13:56; всего 1 раз(а); by GarDiz
Инфа же всё равно не верно будет выводиться ))
________
посл. ред. 02.03.2020 в 13:56; всего 1 раз(а); by GarDiz
Стр.: 1, 2