profit
Местный
Здравствуйте появилась идея сделать обычную лотерею фф по времени. Сейчас сделано так выставляется общее количество билетов в php после того как все куплены, моментально определяются 3 победителя. А я хочу сделать что бы победителей определяло через определенный срок, например через неделю и сделаю я это по крону (планировщику).
Задали неделю в планировщике срабатывает код считает не билеты а количество участников и начисляет призы, а также выводит статистику. Код получилось написать но есть проблема, не могу в этом коде без сессии юзера, вставить имя в значение что бы произошло начисление приза и статистика, в данном коде выводится просто нули вместо логина и на баланс не начисляет, хотя сам код срабатывает. Подскажите кто то пожалуйста как исправить это ?
Задали неделю в планировщике срабатывает код считает не билеты а количество участников и начисляет призы, а также выводит статистику. Код получилось написать но есть проблема, не могу в этом коде без сессии юзера, вставить имя в значение что бы произошло начисление приза и статистика, в данном коде выводится просто нули вместо логина и на баланс не начисляет, хотя сам код срабатывает. Подскажите кто то пожалуйста как исправить это ?
PHP:
<?PHP
@error_reporting(E_ALL ^ E_NOTICE);
@ini_set('display_errors', true);
@ini_set('html_errors', false);
@ini_set('error_reporting', E_ALL ^ E_NOTICE);
# Подматываем классы
function __autoload($name){ include("classes/_class.".$name.".php");}
# Класс конфига
$config = new config;
# Функции
$func = new func;
# База данных
$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);
$db->Query("SELECT
(SELECT COUNT(*) FROM db_lottery) all_users");
$stats_data = $db->FetchArray();
# Настройки лотерея
$amount_lottery = 100; // Стоимость лотерейного билета
$num_bil = $stats_data["all_users"]; // Количество участников
$lid = $db->LastInsert();
if( $lid >= $num_bil)
# Розыгрываем призы
while(true){
$winner_a = rand(1, $num_bil);
$winner_b = rand(1, $num_bil);
$winner_c = rand(1, $num_bil);
if($winner_a != $winner_b AND $winner_b != $winner_c AND $winner_c != $winner_a) break;
}
# Пользователь 1
$db->Query("SELECT user FROM db_lottery WHERE id = '$winner_a'");
$user_a = $db->FetchRow();
# Пользователь 2
$db->Query("SELECT user FROM db_lottery WHERE id = '$winner_b'");
$user_b = $db->FetchRow();
# Пользователь 3
$db->Query("SELECT user FROM db_lottery WHERE id = '$winner_c'");
$user_c = $db->FetchRow();
# чистим таблицу
$db->Query("TRUNCATE TABLE db_lottery");
# Вставляем запись о победителях (Не вставляется пользователь)
$all_bank = ($num_bil * $amount_lottery);
$db->Query("INSERT INTO db_lottery_winners (user_a, bil_a, user_b, bil_b, user_c, bil_c, bank, date_add)
VALUES ('$user_a','$winner_a','$user_b','$winner_b','$user_c','$winner_c','$all_bank','".time()."')");
# Обновляем средства пользователям
# 1 место(Не вставляется пользователь)
$money_a = $all_bank * 0.5;
$db->Query("UPDATE db_users_b SET money_p = money_p + '$money_a' WHERE user = '$user_a'");
# 2 место(Не вставляется пользователь)
$money_b = $all_bank * 0.25;
$db->Query("UPDATE db_users_b SET money_p = money_p + '$money_p' WHERE user = '$user_b'");
# 3 место(Не вставляется пользователь)
$money_c = $all_bank * 0.20;
$db->Query("UPDATE db_users_b SET money_p = money_p + '$money_c' WHERE user = '$user_c'");
?>
Вложения
-
2,3 КБ Просмотры: 145