Вычисление статуса клиента?
Подскажите, пожалуйста, как реализовать систему подсчета последних заказов клиентов? Получаю последние оплаченные заказы клиента (только дату) за последний год
$row= $mysqli->query("SELECT `date` FROM `orders` WHERE `date` >= '2022-02-12 00:00:00' AND `email` = '$email' AND `paid` = 1 ORDER BY `date` DESC");
Еще вопрос как корректно получать данные за последний год?
Полученные данные нужно перебрать (возможно через switch) Всего 5 статусов: Новый, Бронза, Серебро, Золото, Платина
- Платина — количество найденных заявок за последние 30 дней >= 50 (если да, то останавливаемся, переменной $status присваиваем "platina")
- Золото — количество найденных заявок за последние 30 дней >= 30 (тоже самое, $status="gold")
- Серебро — количество найденных заявок за последние 90 дней >= 30 ($status="silver")
- Бронза — количество найденных заявок за последний год >= 2 ($status="bronze")
- Новый — количество найденных заявок за последний год = 1 ($status="new")
Надеюсь, я понятно выразился что мне требуется:) помогите, пожалуйста
Ответы (1 шт):
Пожалуйста, опишите ваш вопрос более детально. Если вам нужно искать данные с датами, которые входят в диапазон от (сегодня минус год) до сегодня, просто сформируйте такую же дату, что и сегодняшнюю, только на один год меньше и по ней ищите:
$timestamp = time() - 86400 * 365; // 86400 - секунд в сутках
$date = date("Y-m-d", $timestamp) . " 00:00:00"; // должно получиться что-то типа 2022-02-18 00:00:00
$row = $mysqli->query("SELECT `date` FROM `orders` WHERE `date` >= '$date' AND `email` = '$email' AND `paid` = 1 ORDER BY `date` DESC");
Про второй вопрос непонятно. Если вам нужно перебрать полученные записи, то делается это вот так:
$query = $mysqli->query("SELECT `date` FROM `orders` WHERE `date` >= '$date' AND `email` = '$email' AND `paid` = 1 ORDER BY `date` DESC");
while ($row = $query->fetch_array()) {
// здесь $row - одна запись из результата запроса
}