username, balance.
Нужно создать скрипт который отнимает 0.2% денег у каждого юзера раз в сутки.
Вот мой вариант работы:
<?php
$moneySelect = mysql_query("SELECT * FROM `users_balance`") or
die(mysql_error());
while($string = mysql_fetch_array($moneySelect)) {
$balance = $string['balance'];
$username = $string['username'];
$balance = $balance - 0.2%;
mysql_query("UPDATE `users_balance` SET `balance` = '$balance' WHERE `username` = '$username' ") or
die("Could not connect: " . mysql_error());
}
?>
Но я вот боюсь что слишком "толстый" цикл, какие нибудь хинты? У нас свой dedicated сервер, потому ни кто не отключит нас за большие нагрузки, но все же.
Спустя 3 минуты, 19 секунд (9.12.2011 - 21:02) Winston написал(а):
Не уверен насчет отнятия процентов, но целые числа отнять можно таким вот запросом, без предварительного вытаскивания из БД. Попробуй
Спустя 4 минуты, 27 секунд Winston написал(а):
А еще попробуй таким запросом. Этот должен заработать
mysql_query("UPDATE `users_balance` SET `balance` = `balance` - 0.2% WHERE `username` = '" . $username . "' ") or die(mysql_error());
Спустя 4 минуты, 27 секунд Winston написал(а):
А еще попробуй таким запросом. Этот должен заработать
mysql_query("UPDATE `users_balance` SET `balance` = `balance` - (0.2 / 100 * `balance`) WHERE `username` = '" . $username . "' ") or die(mysql_error());
Спустя 5 минут, 6 секунд (9.12.2011 - 21:07) Сириус написал(а):
Ох, благодарю.Я так и думал, что есть способ более привлекательный, а что насчет "нагрузки"?
Спустя 1 минута, 19 секунд (9.12.2011 - 21:08) Winston написал(а):
Насчет нагрузки даже не знаю. Но будет точно намного меньше чем в твоем примере

Спустя 3 минуты, 7 секунд (9.12.2011 - 21:12) inpost написал(а):
Сириус
50 тыс - мало записей. Достаточно быстро пробежится. Ставь крон на ночь какую-нибудь.
50 тыс - мало записей. Достаточно быстро пробежится. Ставь крон на ночь какую-нибудь.
Спустя 23 часа, 10 минут, 37 секунд (10.12.2011 - 20:22) Guest написал(а):
Цитата |
отнимает 0.2% денег у каждого юзера |
А зачем тогда проверка по $username ?
Просто
mysql_query("UPDATE `users_balance` SET `balance` = `balance` - (0.2 / 100 * `balance`) ")