Пример:
25.12.2009
ставлю процент 5%
у пользователя:
Активный депозит-100$ (сколько пополнил)
Заработано-5$
Баланс-105$
26.12.2009
ставлю процент 10%
у пользователя:
Активный депозит-100$ (сколько пополнил)
Заработано-15$
Баланс-115$
вот скрипт что я сделал
<?php
if (isset($_POST["id"]))
{
$username=$_POST["username"];
$password=$_POST["password"];
$referer=$_POST["referer"];
$email=$_POST["email"];
$pemail=$_POST["pemail"];
$country=$_POST["country"];
$referals=$_POST["referals"];
$money=$_POST["money"];
$money_prec=$_POST["money_prec"];
$query = "UPDATE tb_users SET username='$username', password='$password', referer='$referer',
email='$email', pemail='$pemail', country='$country', referals='$referals',
money='$money', date_deposit=NOW() where id='$id'";
mysql_query($query) or die(mysql_error());
echo "<font color=\"green\"><b>User отредактирован.</b></font><br><br>";
}
if (isset($_GET["id"]))
{
$id=$_GET["id"];
if ($_GET["option"]=="edit")
{
$tablae = mysql_query("SELECT * FROM tb_users where id='$id'");
$registroe = mysql_fetch_array($tablae);
$mysql_queries++;
$sql="SELECT *, UNIX_TIMESTAMP(`date_deposit`) as `date_deposit` FROM tb_users WHERE username='$lole'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
?>
<form method="post" action="index.php?op=7">
<b>Пользователь</b><br>
<table>
<tr>
<th width="200">Id:</th><td><b> <input type="hidden" name="id" value="<?= $registroe["id"] ?>"><?= $registroe["id"] ?><br></b></td><tr>
<th width="200">Логин:</th> <td> <b><input type="hidden" name="username" value="<?= $registroe["username"] ?>"><?= $registroe["username"] ?><br></b></td></tr><tr>
<th width="200">Пароль:</th> <td><b> <input type="hidden" name="password" value="<?= $registroe["password"] ?>"><?= $registroe["password"] ?><br></b></td></tr><tr>
<th width="200">Реферал:</th> <td><b> <input type="hidden" name="referer" value="<?= $registroe["referer"] ?>"><?= $registroe["referer"] ?><br></b></td></tr><tr>
<th width="200">E-mail:</th> <td><b> <input type="hidden" name="email" value="<?= $registroe["email"] ?>"><?= $registroe["email"] ?><br></b></td><tr>
<th width="200">Откуда:</th> <td><b> <input type="hidden" name="country" value="<?= $registroe["country"] ?>"><?= $registroe["country"] ?><br></b></td></tr>
<th width="200">№ счета:</th> <td> <b><input type="hidden" name="pemail" value="<?= $registroe["pemail"] ?>"><?= $registroe["pemail"] ?></b><br></td><tr>
<th width="200">Рефералов:</th> <td><b> <input type="hidden" name="referals" value="<?= $registroe["referals"] ?>"><?= $registroe["referals"] ?></b><br></td><tr>
</table>
<?php
$sql = "SELECT * FROM tb_config WHERE id='1'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$d_time = $row['date_deposit'];
$n_time = time();
$row["depos"] = (($registroe["money"]/100) * $row["proc"]) * ($n_time - $d_time) ;
$percent=$row["depos"];
$query = "UPDATE tb_users SET percent='$percent' where id='$id'";
mysql_query($query) or die(mysql_error());
$sql = "SELECT * FROM tb_users WHERE id='$id'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$row["m"] = ($registroe["money"]+$percent);
$money_prec = $row["m"];
$query = "UPDATE tb_users SET money_prec='$money_prec' where id='$id'";
mysql_query($query) or die(mysql_error());
?>
<b>Аккаунта</b><br>
<table>
<tr>
<th width="200">Активный депоз:</th> <td><input type="text" name="money" value="<?= $registroe["money"] ?>">$<br></td><tr>
<th width="200">Баланс:</th><td><b><input type="hidden" name="money_prec" value="<?= $registroe["money_prec"] ?>"><?= $registroe["money_prec"] ?>$</b><br></td><tr>
<th width="200">Всего заработано:</th><td><b><input type="hidden" name="percent" value="<?echo $percent ?>"><?echo $percent ?>$</b><br></td><tr>
<th width="200">Всего выплачено:</th><td><b><input type="hidden" name="paid" value="<?= $registroe["paid"] ?>"><?= $registroe["paid"] ?>$</b><br></td><tr>
<th width="200">Процентов:</th><td><b><input type="hidden" name="proc" value="<? echo $row["proc"]; ?>"><? echo $row["proc"]; ?>%<br></b></td><tr>
</table>
?>
'date_deposit' - это дата пополнения, т.е апгрейд
"proc" - процент который я ставлю.
Он считает и выводит какие то большие числа, такое ощущения что он дату считает не как дата а как число.
Спустя 1 час, 54 секунды (29.12.2009 - 11:00) ApuktaChehov написал(а):
функция time() возвращает время в секундах, начиная с 1970 г., так называемая эра UNIX. Для перевода этого временя в "нормальное", имеются соответсвующие функции.
Спустя 2 часа, 2 минуты, 32 секунды (29.12.2009 - 13:02) Ermak написал(а):
Цитата (ApuktaChehov @ 29.12.2009 - 08:00) |
функция time() возвращает время в секундах, начиная с 1970 г., так называемая эра UNIX. Для перевода этого временя в "нормальное", имеются соответсвующие функции. |
Можеш подсказать какие или каие лучше мне использовать.
Спустя 58 минут, 27 секунд (29.12.2009 - 14:01) ApuktaChehov написал(а):
time() используй. С ней очень удобно, особенно, если нужно вычислить, сколько прошло времени.
А если нужно перевести в "нормальный" вид, можно юзать вот это:
А если нужно перевести в "нормальный" вид, можно юзать вот это:
date("d-M-Y H:i", время в секундах);
Спустя 43 минуты, 57 секунд (29.12.2009 - 14:45) Ermak написал(а):
Цитата (ApuktaChehov @ 29.12.2009 - 11:01) |
time() используй. С ней очень удобно, особенно, если нужно вычислить, сколько прошло времени. А если нужно перевести в "нормальный" вид, можно юзать вот это: date("d-M-Y H:i", время в секундах); |
Посмотри на моем пример, я правильно понил как мне надо сделать
<?php
$d_time = $row['date_deposit'];
$n_time = date("d-M-Y H:i");
$row["depos"] = (($registroe["money"]/100) * $row["proc"]) * ($d_time - $n_time) ;
?>
Спустя 5 минут, 2 секунды (29.12.2009 - 14:50) ApuktaChehov написал(а):
date("d-M-Y H:i", время в секундах);
В место время в секундах нужно вставить число.
По видемому $d_time
И вообще не верно все.
Тут ты определяешь вермя?
$d_time - $n_time
Если да, то сначала нужно эго вычислить, а только потом использовать
date("d-M-Y H:i", время в секундах);
А то получается, что ты от яблок отнимаешь груши и получаешь арбузы.
Спустя 11 минут, 43 секунды (29.12.2009 - 15:02) Ermak написал(а):
Цитата (ApuktaChehov @ 29.12.2009 - 11:50) |
date("d-M-Y H:i", время в секундах); В место время в секундах нужно вставить число. По видемому $d_time И вообще не верно все. Тут ты определяешь вермя? $d_time - $n_time Если да, то сначала нужно эго вычислить, а только потом использовать date("d-M-Y H:i", время в секундах); А то получается, что ты от яблок отнимаешь груши и получаешь арбузы. |
Я хотел сделать так:
Человек поплнил 100 рублей и сразу записалась, через час он еще пополнил 100 рублей и уже стало 200 рублей. А у меня не прибавлялось а ставила новый результат, т.е последний. Вот как это сделать.
Спустя 55 минут, 42 секунды (29.12.2009 - 15:57) ApuktaChehov написал(а):
Стом, я сейчас говорил, только про время.
Тебе сначала нужно извелеч сумму, которая уже имеется, потом прибавить к ней, сумму пополнения и записать обратно на то же место.
Тебе сначала нужно извелеч сумму, которая уже имеется, потом прибавить к ней, сумму пополнения и записать обратно на то же место.
Спустя 44 минуты (29.12.2009 - 16:41) Ermak написал(а):
Цитата (ApuktaChehov @ 29.12.2009 - 12:57) |
Стом, я сейчас говорил, только про время. Тебе сначала нужно извелеч сумму, которая уже имеется, потом прибавить к ней, сумму пополнения и записать обратно на то же место. |
на своем примере я представляю как это, а вот куда это поместить
Спустя 6 часов, 5 минут, 29 секунд (29.12.2009 - 22:47) Ermak написал(а):
не получилось
Спустя 11 минут, 2 секунды (29.12.2009 - 22:58) twin написал(а):
Не понял я причем тут время и вообще логики с процентами не понял. Но чует моя задница мое сердце, что тут нужно ON DUPLICATE KEY UPDATE юзать.
Спустя 24 минуты, 45 секунд (29.12.2009 - 23:23) Ermak написал(а):
Цитата (twin @ 29.12.2009 - 19:58) |
Не понял я причем тут время и вообще логики с процентами не понял. Но чует |
Да что не понятно.
Человек пополнил счет на 100 рублей. Произошла запись в базе. Через час он пополнил еще на 300 рублей, по идеи должно быть 400 рублей а у меня 300 рублей а 100 потерялись. Вот и спрашиваю как сохранить старое значения и прибавить к нему новое.
Спустя 12 минут, 20 секунд (29.12.2009 - 23:35) twin написал(а):
А детализация платежей нужна или просто суммы достаточно?
Спустя 32 минуты, 29 секунд (30.12.2009 - 00:07) Ermak написал(а):
Цитата (twin @ 29.12.2009 - 20:35) |
А детализация платежей нужна или просто суммы достаточно? |
Надо так:
Пользователь пополнил на 100 рублей.
Я ему начислил 5%
Общий баланс стал 105 рублей.
Ночью он еще пополнил 200 рублей
Общий баланс стал 305 рублей
На следующий день я начислил ему 2%
Общий баланс стал 311 рублей
А у меня
поплнил он 100 руб
Я начислил 5%
Общий баланс 105 рублей
Он поплнил ночью и баланс стал общий 315 рублей
Т.е не сохранил предыдущее
Спустя 10 часов, 59 минут, 35 секунд (30.12.2009 - 11:07) Ermak написал(а):
Цитата (ApuktaChehov @ 29.12.2009 - 12:57) |
Стом, я сейчас говорил, только про время. Тебе сначала нужно извелеч сумму, которая уже имеется, потом прибавить к ней, сумму пополнения и записать обратно на то же место. |
<?php
$row["m"] = $registroe["money"] + $percent; // подсчитываю общий баланс
$money_prec = $row["m"];
$query = "UPDATE tb_users SET money_prec='$money_prec' where id='$id'";
mysql_query($query) or die(mysql_error()); // сохраняю общий баланс
$percent_m = $money_prec + $money; // извелекаю сумму, которая уже имеется, прибавляю к ней сумму пополнения
$query = "UPDATE tb_users SET money_prec='$percent_m' where id='$id'";
mysql_query($query) or die(mysql_error()); //записываю обратно на то же место.
?>
Но всеравно не сохраняет старый общий баланс. А начисляет опять новый и высчитывает процент уже с новым. Пример выше.
Спустя 11 минут, 1 секунда (30.12.2009 - 11:18) sergeiss написал(а):
Цитата (Ermak @ 30.12.2009 - 12:07) |
Но всеравно не сохраняет старый общий баланс. А начисляет опять новый и высчитывает процент уже с новым. Пример выше. |
Ну так и правильно! Ты именно это и делаешь, к тому же методом "лечение горла через сидячее место".
То, что ты делаешь, делается одним запросом - это и проще, и быстрее, и понятнее (более читабельно).
А то, что ты хочешь - "сохранить старый общий баланс" - так и вообще непонятно, где ты его хочешь сохранять. У тебя есть одно поле - там или новый баланс, или старый баланс. Другого нет и быть не может.
Спустя 26 минут, 46 секунд (30.12.2009 - 11:45) Ermak написал(а):
Есть окно куда я пишу пополнения: : "Баланс"
Есть окно куда выводиться: "Общий баланс"
Вот как у меня:
Я в "балансе" ставлю сколько пополнил, например 100
В "общем балансе" появиться тоже 100
по формуле считаю: Общий баланс =Общий баланс + Баланс
И он уже мне сразу выводит в общем балансе 200, но пользователь больше 100 не поплнял.
Я понимаю дело в том что надо как только я записываю в балансе 100 и сохраняеться в общем балансе, то в балансе должен быть опять 0 . вот как так сделать?
Есть окно куда выводиться: "Общий баланс"
Вот как у меня:
Я в "балансе" ставлю сколько пополнил, например 100
В "общем балансе" появиться тоже 100
по формуле считаю: Общий баланс =Общий баланс + Баланс
И он уже мне сразу выводит в общем балансе 200, но пользователь больше 100 не поплнял.
Я понимаю дело в том что надо как только я записываю в балансе 100 и сохраняеться в общем балансе, то в балансе должен быть опять 0 . вот как так сделать?
Спустя 3 часа, 43 минуты, 46 секунд (30.12.2009 - 15:28) Ermak написал(а):
Не хрена не понимаю
'money' поставил 8
выводит: UPDATE tb_users SET money_prec='8' where id='1'
Подскажите!
<?php
$money_prec = $row["money"]+$money_prec;
$query = "UPDATE tb_users SET money_prec='$money_prec' where id='$id'";
echo($query) ;
?>
'money' поставил 8
выводит: UPDATE tb_users SET money_prec='8' where id='1'
Подскажите!
_____________
Я выучу PHP!!!!