PHP/MySQL | Помогите по MySQL
Нарыл в интернете + добавил отсебятину = не верно выводит.
С меня на мороженко )
________
посл. ред. 02.03.2020 в 10:06; всего 1 раз(а); by GarDiz
С меня на мороженко )
// Счетчик заявок за сегодня
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
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