Накопительный бонус

  • Автор темы vladimir44
  • Дата начала
vladimir44
Участник
Сообщения
145
Реакции
28
Кто нибуть знает как сделать скажим из ежедневного накопительный бонус например что бы каждые 12 часов добовлялось по 10 серебра и присуцтвовало ограничение скажим в 1500 серебра и по достижении предела начиналось опять с 10 видил такие уже в действии ну вот как его сделать никак не доходит можит у кого уже есть готовый то поделитесь буду очень благодарен
 
wh1skas
wildcake
Участник
Сообщения
1.023
Реакции
438
ICQ
564739604 564739604
Наведу на мысль тебя, если хорошо понимаешь в php.

1. Работа будет проходить с тремя переменными времени:
date_add, date_del, date_del2
и другие переменные: бонус_max = 1500;
date_del настраиваем на 12 часов, date_del2 - на 24 часа
Ставишь условие:
Если date_del <= time()
Тогда можно получить бонус, сумма = сумма + 20
Если сумма <= бонус_max
Обновляем БД пользователя: баланс + сумма.
Иначе если сумма > бонус_max
Сумма = 10;

Обновляем БД пользователя: баланс + сумма.
Далее по условию,
Если date_del2 <= time()
Cумма
= 10;
Обновляем БД пользователя: баланс + сумма.
 
vladimir44
Участник
Сообщения
145
Реакции
28
Ну в php. я не очень так в общих понятиях ну попробую хотя конечно было бы лучше что бы помог кто
 
Wolf88
Участник
Сообщения
137
Реакции
54
vladimir44 написал(а):
Ну в php. я не очень так в общих понятиях ну попробую хотя конечно было бы лучше что бы помог кто
Ну да, кто-то поможет, кто-то потом будет продавать модули выдавая за свои =)

Ребят. Вам и так помогают, ведь не большой совет от нас - это очень большой для Вас...
Не кто не запрещает изучать php, пусть не в больших кол-во, но изучить для начала нужно исходники которые ставите...
 
Andranik
Участник
Сообщения
28
Реакции
0
Вижу тема старая, нашел по поиску, хочу сам похожий модуль сообразить, но без макс. ограничения. Думаю должно выглядеть как-то так:
Вводим переменную bonus=10, далее если пользователь уже получал накопительный бонус за последние 12 часов то берем значение из БД и прибавляем к переменной bonus (bonus= 10 + sum), если же бонус не забирался уже 12 часов, то оставляем bonus= 10.
Ну и после начисления бонуса вводим новые данные в БД.
Единственная проблема в том, что в MySql знания на нулевом уровне, никак не пойму как взят значение и столбца sum в базе данных и присвоить их переменной. Может кто-нибудь подскажет?
 
wh1skas
wildcake
Участник
Сообщения
1.023
Реакции
438
ICQ
564739604 564739604
делаешь выборку сначала через SELECT, в файлах много чего найдешь похожего. Полученную выборку присваиваешь переменной, например: $A = db -> $db->FetchArray();
Далее работаешь с переменной $A.
 
Andranik
Участник
Сообщения
28
Реакции
0
wh1skas написал(а):
делаешь выборку сначала через SELECT, в файлах много чего найдешь похожего. Полученную выборку присваиваешь переменной, например: $A = db -> $db->FetchArray();
Далее работаешь с переменной $A.
Я правильно понял? Делаем выборку:
PHP:
$query = "SELECT sum FROM `db_bonus_listacc` WHERE user_id = '$usid' AND date_del > '$dadd'";
Присваиваем значение:
PHP:
$sum = mysql_query($query) + 5;
 
Andranik
Участник
Сообщения
28
Реакции
0
Ура! Сработало)) Спасибо за помощь, написал так:
PHP:
$db->Query("SELECT sum FROM db_bonus_listacc WHERE user_id = '$usid' LIMIT 1");
$sum = $db->FetchRow() + 5;
 
alexdol
Участник
Сообщения
44
Реакции
2
а можно полностью файл и бд с инструкцией
 
alexdol
Участник
Сообщения
44
Реакции
2
  • #10
Andranik написал(а):
Ура! Сработало)) Спасибо за помощь, написал так:
PHP:
$db->Query("SELECT sum FROM db_bonus_listacc WHERE user_id = '$usid' LIMIT 1");
$sum = $db->FetchRow() + 5;
скинь весь файл если не затруднит. пожалуйста.
 
Shoma2114
Участник
Сообщения
63
Реакции
2
  • #11
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Накопительный бонус";
$usid = $_SESSION["user_id"];
$uname = $_SESSION["user"];

$db->Query("SELECT * FROM db_users_b WHERE id = '$usid' LIMIT 1");
$user_data = $db->FetchArray();

$db->Query("SELECT COUNT(*) FROM db_nakop_bonus WHERE user_id = '$usid' LIMIT 1");
if($db->FetchRow() == 0) {
$db->Query("INSERT INTO db_nakop_bonus (user, user_id) VALUES ('$uname','$usid')");
header( 'Refresh: 1; url=/account/cumulative' );
} else {
$db->Query("SELECT * FROM db_nakop_bonus WHERE user_id = '$usid' LIMIT 1");
$bonus = $db->FetchArray();
}

if ($bonus["sum"] > 1000) {
$db->Query("UPDATE db_nakop_bonus SET sum = 20 WHERE user_id = '$usid'");
header( 'Refresh: 1; url=/account/cumulative' );
}
?>
<div class="s-bk-lf">
<div class="acc-title">Накопительный бонус</div>
</div>
<div class="silver-bk">
<div class="clr"></div>


<center>Бонус выдется 1 раз в 12 часов. </center>
<center>Бонус выдается монетами на счет для покупок. </center>
<center>Сумма бонуса увеличивается на 20 монет с каждым получением. Максимальная сумма бонуса - 1000 монет. Если Вы не получали бонус более 24-х часов, то он скидывается до 20 монет.<b> Сейчас сумма вашего бонуса - <?=$bonus["sum"];?></b></center>
<BR />

<?PHP
# Заглушка от халявщиков
if($user_data["insert_sum"] <= 99.99){

?>
<center><font color="red"><b>Получать бонус могут пользователи, которые пополнили баланс больше, чем на 100 RUB<br><b></font></center>

<div class="clr"></div>
</div>
<?PHP

return;
}

?>
<?PHP
$ddel = time() + 60*60*12;
$dadd = time();
$db->Query("SELECT COUNT(*) FROM db_nak_bonus WHERE user_id = '$usid' AND date_del > '$dadd'");

$hide_form = false;

if($db->FetchRow() == 0){

# Выдача бонуса
if(isset($_POST["bonus"])){

$sum = $bonus["sum"];

# Зачилсяем юзверю
$db->Query("UPDATE db_users_b SET money_b = money_b + '$sum' WHERE id = '$usid'");
$db->Query("UPDATE db_nakop_bonus SET sum = sum + 20 WHERE user_id = '$usid'");

# Вносим запись в список бонусов


$db->Query("INSERT INTO db_nak_bonus (user, user_id, sum, date_add, date_del) VALUES ('$uname','$usid','$sum','$dadd','$ddel')");

# Случайная очистка устаревших записей
$db->Query("DELETE FROM db_nak_bonus WHERE date_del < '$dadd'");

echo "<center><font color = 'green'><b>На Ваш счет для покупок зачислен бонус в размере {$sum} монет</b></font></center><BR />";

$hide_form = true;

}

# Показывать или нет форму
if(!$hide_form){
?>

<form action="" method="post">
<table width="330" border="0" align="center">
<tr>
<td align="center"></td>
</tr>
<tr>
<td align="center"><input type="submit" name="bonus" value="Получить бонус" style="height: 30px; margin-top:10px;"></td>
</tr>
</table>
</form>

<?PHP

}

}else echo "<center><font color = 'red'><b>Вы уже получали бонус за последние 12 часов!</b></font></center><BR />"; ?>




<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
<?PHP

$db->Query("SELECT * FROM db_nak_bonus WHERE user = '$uname' LIMIT 1");

if($db->NumRows() > 0){

while($data_bonus = $db->FetchArray()){

?>



<tr><center><td>Получить бонус</td><td>можно</td><td><?=date("d.m в H:i:s",$data_bonus["date_del"]) ;?><center></td></tr>

<?PHP

}

}else echo 'Вы давно не получали бонус. Получите!';

?>

<tr>
<td colspan="5" align="center"><h4>Последние 20 бонусов</h4></td>
</tr>
<tr>
<td align="center" class="m-tb">ID</td>
<td align="center" class="m-tb">Пользователь</td>
<td align="center" class="m-tb">Сумма</td>
<td align="center" class="m-tb">Дата</td>
</tr>
<?PHP
$db->Query("SELECT * FROM db_nak_bonus ORDER BY id DESC LIMIT 20");
if($db->NumRows() > 0){
while($bon = $db->FetchArray()){

?>
<tr class="htt">
<td align="center"><?=$bon["id"]; ?></td>
<td align="center"><?=$bon["user"]; ?></td>
<td align="center"><?=$bon["sum"]; ?></td>
<td align="center"><?=date("d.m.Y",$bon["date_add"]); ?></td>
</tr>
<?PHP

}
}else echo '<tr><td align="center" colspan="5">Нет записей</td></tr>'
?>

</table>

<div class="clr"></div>
</div>
 
Сверху