Автор Тема: Помогите с выводом интервальной информации с базы данных  (Прочитано 117 раз)

0 Пользователей и 1 Гость просматривают эту тему.

ShelbyАвтор темы

  • *
  • Оффлайн
  • Дата регистрации: Фев. 2020
  • Сообщений: 1
  • Страна: ru
  • Репутация +0/-0
  • Пол: Мужской
    • Награды
Помогите вывести данные с базы данных с интервалами в месяц, неделя, 24 часа.
За всё время данные смог вывести а вот с интервалами не получается...

Запросы к BD:
Спойлер
$db->Query("SELECT * FROM db_users_b WHERE db_users_b.id = '$user_id'");
$from_refer = $db->FetchArray();
$db->Query("SELECT * FROM db_users_b WHERE db_users_b.id = '$user_id'> NOW() - INTERVAL 1 MONTH");
$from_refer30 = $db->FetchArray();
$db->Query("SELECT * FROM db_users_b WHERE db_users_b.id = '$user_id'> NOW() - INTERVAL 7 DAY");
$from_refer7 = $db->FetchArray();
$db->Query("SELECT * FROM db_users_b WHERE db_users_b.id = '$user_id'> NOW() - INTERVAL 1 DAY");
$from_refer1 = $db->FetchArray();
[свернуть]
Сам код:
Спойлер
за всё время - <?=sprintf("%.2f",$from_refer["from_referals"]); ?>
за месяц - <?=sprintf("%.2f",$from_refer30["from_referals"]); ?>
за неделю - <?=sprintf("%.2f",$from_refer7["from_referals"]); ?>
за день - <?=sprintf("%.2f",$from_refer1["from_referals"]); ?>
[свернуть]
 

Rich-99000000

  • *
  • Оффлайн
  • Награды Более 4 лет на форуме !!! Репутация более 5 Топ 10 по сообщениям Благодарность от форума Болеее 300 сообщений Более 10 созданных тем
  • Дата регистрации: Июль 2016
  • Расположение: Novosibirsk
  • Возраст: 24
  • Сообщений: 404
  • Страна: ru
  • Поблагодарили: 98 раз(а)
  • Репутация +5/-0
  • Пол: Мужской
  • моды, сайты на заказ недорого >> ЛС
  • Дата рождения:1995-11-30
    • Награды
  • Социальные сети:
    ВКонтакте
Реализация, возможно требует добавочной таблицы db_refs_list, где стоит учитывать дату действия. Поскольку период прихода рефских в стоке вроде как не считается. Можно конечно намастить вариант выбора из таблицы пополнений и оттуда дергать по date_add - ref_id'шники и делать счет сколько от суммы аплайнер получил и был ли он.

Потенциальная выборка что-то около:
$arr_period = array(1=>24,2=>24*7,3=>24*30);



for($q=1;$q<=3;$q++){
$dt = time() - 60*60*$arr_period[$q];
$db->Query("SELECT * FROM db_refs_list WHERE upliner = '$user_id' AND date_add > '$dt' ORDER BY id DESC");
if($db->NumRows()>0){
while($data=$db->FetchArray()){
$from_referer_sum[$q] =+$data["sum"];
}
}
}

echo "за 24 часа: ".$from_referer_sum[1];
echo "<br>";
echo "за неделю: ".$from_referer_sum[2];
echo "<br>";
echo "за месяц: ".$from_referer_sum[3];

Не претендую на истину в последней инстанции, просто потенциальные думы на этот счет.
 
Теги: help