Скрипт Фруктовая ферма с выводом денег.

  • Автор темы admin
  • Дата начала
Статус
В этой теме нельзя размещать новые ответы.
chelton085
Местный
Сообщения
174
Реакции
6
  • #5.041
Ребят, помогите выставить условия для двойного неравенства. Уже третий день бьюсь безуспешно. Не могу понять, как знаки выставить. Или, возможно, у меня в целом конструкция не правильная. В общем, если на словах - если выплачено юзеру уже от 120% до 149% депозита - он более не может пополнять счет, пока не выведет ровно 150%.
Я написал вот такую конструкцию, но не могу совладать с ней.
PHP:
<?PHP
if ($user_data["insert_sum"]*1.2 <= $user_data["payment_sum"] && $user_data["payment_sum"] <= $user_data["insert_sum"]*1.49) {
?>
<table><div class="clr"></div>   
<center><font color="red"><b>Вы должны вывести 150% от суммы депозита, чтобы пополнять счёт снова!</center>
</table>
</div>   
<?PHP
return;
}
?>
 
FarMan
Местный
Сообщения
58
Реакции
9
  • #5.042
chelton085 написал(а):
Ребят, помогите выставить условия для двойного неравенства. Уже третий день бьюсь безуспешно. Не могу понять, как знаки выставить. Или, возможно, у меня в целом конструкция не правильная. В общем, если на словах - если выплачено юзеру уже от 120% до 149% депозита - он более не может пополнять счет, пока не выведет ровно 150%.
Я написал вот такую конструкцию, но не могу совладать с ней.
PHP:
<?PHP
if ($user_data["insert_sum"]*1.2 <= $user_data["payment_sum"] && $user_data["payment_sum"] <= $user_data["insert_sum"]*1.49) {
?>
<table><div class="clr"></div>  
<center><font color="red"><b>Вы должны вывести 150% от суммы депозита, чтобы пополнять счёт снова!</center>
</table>
</div>  
<?PHP
return;
}
?>
а зачем тебе первая чать? попробуй так!
PHP:
<?PHP
if ($user_data["payment_sum"] <= $user_data["insert_sum"]*1.49) {
?>
<table><div class="clr"></div>  
<center><font color="red"><b>Вы должны вывести 150% от суммы депозита, чтобы пополнять счёт снова!</center>
</table>
</div>  
<?PHP
return;
}
?>
 
chelton085
Местный
Сообщения
174
Реакции
6
  • #5.043
FarMan написал(а):
а зачем тебе первая чать? попробуй так!
Если бы мне нужно было бы односторонее условие, было бы все просто. Но идея в другом - чтобы пользователь в процессе мог пополняться, однако доведя выплаты до определенного уровня. он получает ограничение на ввод и должен вывести все 150%. Это хочу внедрить затем, чтобы особо хитрые не пользовались моментом, когда достигается уровень повышенной окупаемости и можно вводить мелкие суммы, окупая их в профит +50% всего за сутки. Вот потому-то мне и нужны два условия, а как их заставить одновременно работать - ума не приложу.
 
FarMan
Местный
Сообщения
58
Реакции
9
  • #5.044
chelton085 написал(а):
Если бы мне нужно было бы односторонее условие, было бы все просто. Но идея в другом - чтобы пользователь в процессе мог пополняться, однако доведя выплаты до определенного уровня. он получает ограничение на ввод и должен вывести все 150%. Это хочу внедрить затем, чтобы особо хитрые не пользовались моментом, когда достигается уровень повышенной окупаемости и можно вводить мелкие суммы, окупая их в профит +50% всего за сутки. Вот потому-то мне и нужны два условия, а как их заставить одновременно работать - ума не приложу.
пооробуй вместо && and прописать
 
FarMan
Местный
Сообщения
58
Реакции
9
  • #5.045
PHP:
<?PHP
if ($user_data["insert_sum"]*1.2 <= $user_data["payment_sum"] and $user_data["payment_sum"] <= $user_data["insert_sum"]*1.49) {
?>
вот так)
 
FarMan
Местный
Сообщения
58
Реакции
9
  • #5.046
chelton085 написал(а):
Если бы мне нужно было бы односторонее условие, было бы все просто. Но идея в другом - чтобы пользователь в процессе мог пополняться, однако доведя выплаты до определенного уровня. он получает ограничение на ввод и должен вывести все 150%. Это хочу внедрить затем, чтобы особо хитрые не пользовались моментом, когда достигается уровень повышенной окупаемости и можно вводить мелкие суммы, окупая их в профит +50% всего за сутки. Вот потому-то мне и нужны два условия, а как их заставить одновременно работать - ума не приложу.
к тебя прописано в коде что такое $user_data ?
PHP:
$db->Query("SELECT * FROM db_users_b WHERE id = '$usid' LIMIT 1");
$user_data = $db->FetchArray();
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #5.047
chelton085 написал(а):
Ребят, помогите выставить условия для двойного неравенства. Уже третий день бьюсь безуспешно. Не могу понять, как знаки выставить. Или, возможно, у меня в целом конструкция не правильная. В общем, если на словах - если выплачено юзеру уже от 120% до 149% депозита - он более не может пополнять счет, пока не выведет ровно 150%.
Я написал вот такую конструкцию, но не могу совладать с ней.
PHP:
<?PHP
if ($user_data["insert_sum"]*1.2 <= $user_data["payment_sum"] && $user_data["payment_sum"] <= $user_data["insert_sum"]*1.49) {
?>
<table><div class="clr"></div>  
<center><font color="red"><b>Вы должны вывести 150% от суммы депозита, чтобы пополнять счёт снова!</center>
</table>
</div>  
<?PHP
return;
}
?>
Логический оператор AND выполняет условие только в том случае, если все условия истинные. Если хотя бы одно условие ложно, то все условие ложно. Вот почему оператор AND иногда сравнивается с математическим умножением. 451*6845*655*0 = 0. Какие бы не были числа, но если в выражении есть ноль, то все выражение нулевое.
Логические операторы && и and имеют тот же смысл!
Логический оператор OR отличается от оператора AND тем, что если в условии есть хоть одно истинное условие, то все условие истинно. Вот почему оператор OR иногда сравнивается с математическим сложением. 0+0+0+1 = 1. Если в выражении много нулей, но есть хотя бы одна единица, то все выражение ненулевое.
 
chelton085
Местный
Сообщения
174
Реакции
6
  • #5.048
Пока оставил эти двойные условия - не получается и всё...Мыкает дико эта хрень..
Скажите, кто внедрял себе опыт? В частности, интересует опыт именно за покупку фруктов.
Я сделал вот так:
PHP:
if ($сitem = "a_t"){
$exp = 20;
}
И назначил апдейт базы:
PHP:
$db->Query("UPDATE db_users_b SET exp = exp + '$exp' WHERE id ='$usid' LIMIT 1");
Как вариант для единого кол-во опыта за любой вид дерева - отлично работает.
Но хочу внедрить, чтобы кол-во опыта за каждое древо было разным.
Если я делаю такую конструкцию:
PHP:
if ($сitem = "a_t"){
$exp = 20;
if ($сitem = "b_t"){
$exp = 30;
}
То система определяет опять же единое кол-во опыта, но уже с нижней конструкци, то есть делает для всех древ +30 опыта за единицу.
А как сделать, чтобы система добавляла в ехр именно нужное кол-во опыта для каждого из древ - я не могу догнать.
 
FarMan
Местный
Сообщения
58
Реакции
9
  • #5.049
PHP:
if ($сitem = "a_t"){
$exp = 20;
if ($сitem = "b_t"){
$exp1 = 30;
}
 
chelton085
Местный
Сообщения
174
Реакции
6
  • #5.050
FarMan написал(а):
PHP:
if ($сitem = "a_t"){
$exp = 20;
if ($сitem = "b_t"){
$exp1 = 30;
}
Хорошо, тогда встает вопрос с апдейтом:
PHP:
 $db->Query("UPDATE db_users_b SET exp = exp + '$exp' + '$exp1'  WHERE id ='$usid' LIMIT 1");
Он примет вот такой вид, так ведь? То есть, при покупке одного из видов система будет начислять именно за него експу, определяя кол-во экспы от других видов как нулевое. Сейчас попробую и отпишусь о результате.
 
chelton085
Местный
Сообщения
174
Реакции
6
  • #5.051
Однако, нет. Если в апдейт вписывать $exp + $exp1 и т.д., то опыт капает за каждый из видов деревьев, не смотря на то, что покупается всего лишь один. То есть, опыт капает соответственно каждому виду, как я указал. Но, как сказал, покупается один вид, а сумма за все идет плюсом.
То бишь, запара теперь в построении конструкции апдейта.
 
FarMan
Местный
Сообщения
58
Реакции
9
  • #5.052
chelton085 написал(а):
Однако, нет. Если в апдейт вписывать $exp + $exp1 и т.д., то опыт капает за каждый из видов деревьев, не смотря на то, что покупается всего лишь один. То есть, опыт капает соответственно каждому виду, как я указал. Но, как сказал, покупается один вид, а сумма за все идет плюсом.
То бишь, запара теперь в построении конструкции апдейта.
сделай 2 запроса
а где нибудь выше опиши переменные
 
FarMan
Местный
Сообщения
58
Реакции
9
  • #5.053
PHP:
if ($сitem = "a_t"){
$db->Query("UPDATE db_users_b SET exp = exp + '$exp'   WHERE id ='$usid' LIMIT 1");
} else return;
if ($сitem = "b_t"){
$db->Query("UPDATE db_users_b SET exp = exp + '$exp1'  WHERE id ='$usid' LIMIT 1");
} else return;
 
chelton085
Местный
Сообщения
174
Реакции
6
  • #5.054
Или лыжи не едут, или асфальт виноват.. У меня ступор...
PHP:
$exp0 = 20;
$exp1 = 30;
$exp2 = 40;
$exp3 = 50;
$exp4 = 60;
PHP:
# Проверяем средства пользователя
        $need_money = $sonfig_site["amount_".$citem];
        if($need_money <= $user_data["money_b"]){
       
            if($user_data["last_sbor"] == 0 OR $user_data["last_sbor"] > ( time() - 60*20) ){
               
                $to_referer = $need_money * 0.1;
                if ($сitem = "a_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp0'   WHERE id ='$usid' LIMIT 1");
                } else return;
                if ($сitem = "b_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp1'   WHERE id ='$usid' LIMIT 1");
                } else return;
                if ($сitem = "c_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp2'   WHERE id ='$usid' LIMIT 1");
                } else return;
                if ($сitem = "d_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp3'   WHERE id ='$usid' LIMIT 1");
                } else return;
                if ($сitem = "e_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp4'   WHERE id ='$usid' LIMIT 1");
                } else return;
                # Добавляем дерево и списываем деньги               
                $db->Query("UPDATE db_users_b SET money_b = money_b - $need_money, $citem = $citem + 1, 
                last_sbor = IF(last_sbor > 0, last_sbor, '".time()."') WHERE id = '$usid'");
Вот так вот сделал - и зачсиляет суммарный опыт за все виды...
 
FarMan
Местный
Сообщения
58
Реакции
9
  • #5.055
а что у тебя $citem прописано?
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #5.056
chelton085 написал(а):
Или лыжи не едут, или асфальт виноват.. У меня ступор...
PHP:
$exp0 = 20;
$exp1 = 30;
$exp2 = 40;
$exp3 = 50;
$exp4 = 60;
PHP:
# Проверяем средства пользователя
        $need_money = $sonfig_site["amount_".$citem];
        if($need_money <= $user_data["money_b"]){
      
            if($user_data["last_sbor"] == 0 OR $user_data["last_sbor"] > ( time() - 60*20) ){
              
                $to_referer = $need_money * 0.1;
                if ($сitem = "a_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp0'   WHERE id ='$usid' LIMIT 1");
                } else return;
                if ($сitem = "b_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp1'   WHERE id ='$usid' LIMIT 1");
                } else return;
                if ($сitem = "c_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp2'   WHERE id ='$usid' LIMIT 1");
                } else return;
                if ($сitem = "d_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp3'   WHERE id ='$usid' LIMIT 1");
                } else return;
                if ($сitem = "e_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp4'   WHERE id ='$usid' LIMIT 1");
                } else return;
                # Добавляем дерево и списываем деньги              
                $db->Query("UPDATE db_users_b SET money_b = money_b - $need_money, $citem = $citem + 1,
                last_sbor = IF(last_sbor > 0, last_sbor, '".time()."') WHERE id = '$usid'");
Вот так вот сделал - и зачсиляет суммарный опыт за все виды...
Чтобы не считало все - выражение должно быть вида:
if ($сitem == "a_t"){$exp = 20;}
if ($сitem == "b_t"){$exp1 = 30;}
(т.е. должно стоять два знака = )
 
kvozimir
Участник
Сообщения
1.935
Реакции
409
ICQ
734713 734713
Skype
  • #5.057
я не уверен,но не проще разделить каждое дерево отдельным кодом, и прописать к нему опыт?
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #5.058
kvozimir написал(а):
я не уверен,но не проще разделить каждое дерево отдельным кодом, и прописать к нему опыт?
Можно обойтись и без этого..
 
skroliks
PHP, MySQL, CSS
Участник
Сообщения
280
Реакции
46
  • #5.059
chelton085 написал(а):
Или лыжи не едут, или асфальт виноват.. У меня ступор...
PHP:
$exp0 = 20;
$exp1 = 30;
$exp2 = 40;
$exp3 = 50;
$exp4 = 60;
PHP:
# Проверяем средства пользователя
        $need_money = $sonfig_site["amount_".$citem];
        if($need_money <= $user_data["money_b"]){
      
            if($user_data["last_sbor"] == 0 OR $user_data["last_sbor"] > ( time() - 60*20) ){
              
                $to_referer = $need_money * 0.1;
                if ($сitem = "a_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp0'   WHERE id ='$usid' LIMIT 1");
                } else return;
                if ($сitem = "b_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp1'   WHERE id ='$usid' LIMIT 1");
                } else return;
                if ($сitem = "c_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp2'   WHERE id ='$usid' LIMIT 1");
                } else return;
                if ($сitem = "d_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp3'   WHERE id ='$usid' LIMIT 1");
                } else return;
                if ($сitem = "e_t"){
                $db->Query("UPDATE db_users_b SET exp = exp + '$exp4'   WHERE id ='$usid' LIMIT 1");
                } else return;
                # Добавляем дерево и списываем деньги              
                $db->Query("UPDATE db_users_b SET money_b = money_b - $need_money, $citem = $citem + 1,
                last_sbor = IF(last_sbor > 0, last_sbor, '".time()."') WHERE id = '$usid'");
Вот так вот сделал - и зачсиляет суммарный опыт за все виды...
А можно сделать проще:
Создаешь в базе данных в db_config, например, переменные с опытом для каждого дерева. exp_a_t , exp_b_t и т.д (по количеству видов дерева). Присваиваешь каждому нужное значение опыта (для exp_a_t = 20, exp_b_t = 30 и т.д.).

После покупки дерева прописываешь:
$exp = $sonfig_site["exp_".$citem];
$db->Query("UPDATE db_users_b SET exp = exp + '$exp' WHERE id ='$usid' LIMIT 1");

Вот и все.. :)
 
chelton085
Местный
Сообщения
174
Реакции
6
  • #5.060
ольшое всем спасибо, кто помогал разобраться. Сделал благодаря вам рабочий вид.
PHP:
$exp = $sonfig_site["exp_".$citem];
$db->Query("UPDATE db_users_b SET exp = exp + '$exp' WHERE id ='$usid' LIMIT 1");
Вот такая конструкция работает на ура. Еще раз отдельное спасибо вдогон к + scroliks'у=)
Я самостоятельно дошел до такого же пути, тоже пришел изначально к мысли сделать в таблице ячейки с опытом для каждого дерева. Однако я ошибся вот где - я вынес строку $exp = $sonfig_site["exp_".$citem]; вообще отдельно, выше алгоритма покупки. Потому и не работало. Оказывается, дело-то в простом было - стоило эту строку поставить вместе с командой апдейта - и все заработало. А я мучался 3 дня почти=)
В идеале, можно еще в админку настройки опыта с конфига прикрутить, чтоб были как и все другие настройки. Но на работу это не влияет, так что можно отложить далеко на потом. Чтоб скриптец фермы был вообще фирменным почти=)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху