[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подсчитать не получается!!!
Ermak
Че та не получаеться как я хотел. Я хотел сделать так: Ставлю процент например 5%, а автоматический идет начисления у пользователей и сохраняеться тут же в базе результат по каждому пользователю. Потом на следующий день ставлю новый процент 3% например и уже начисление новое плюсуеться со вчерашним.
Пример:

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)
Не понял я причем тут время и вообще логики с процентами не понял. Но чует моя задница мое сердце, что тут нужно ON DUPLICATE KEY UPDATE юзать.

Да что не понятно.

Человек пополнил счет на 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 . вот как так сделать?

Спустя 3 часа, 43 минуты, 46 секунд (30.12.2009 - 15:28) Ermak написал(а):
Не хрена не понимаю


<?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!!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.