2014-09-04 2 views
-1

Есть 4 пользователей (серебро, золото, платина, админы) maxrange для серебра 5, золото 10, платина 15 и админы 20неправильного синтаксиса при присвоении значения переменной

Что плохое в это?

$maxrange = ($data['range'] > 1483200000) ? 20 : ($data['range'] > 1451600000 && $data['range'] < 1483200000) ? 15 : ($data['range'] > 0 ? $web['gold_range'] : $web['silver_range']); 

серебро, золото, платина отлично работает, но для администратора переменной $ maxrange имеет значение, как 15 в то время как он должен держать 20

Есть ли что-нибудь неправильно в синтаксисе? Может кто-то помочь пожалуйста ...

Также ... диапазон - это тип int (255) в базе данных, который показывает дату. 1483200001 - 31-12-2016 16:00. Как декодировать int до даты/времени?

+1

Перепишите вашу длинную трехкомпонентную цепь в несколько '' if'/elseif' блоков. Гораздо легче на глаза и получить правильное. – mario

+0

Я не кодер :(Он был длинным с самого начала. Я изменил это утверждение и сделал его работу согласно моему желанию. Мне удалось заставить трех пользователей работать серебряным золотом и платиной. Не знаете, почему администратор не поддерживает правильные Я не могу сломать этот длинный код, поскольку я не программист и не знаю правильного синтаксиса. Спасибо –

ответ

0

Вы, вероятно, следует узнать, что ваш код делает, прежде чем начать применять его

if($data['range'] > 1483200000) 
     $maxrange = 20; 
    elseif(($data['range'] < 1483200000) && ($data['range'] > 1451600000)) 
     $maxrange = 15; 
    else { 
      // If $web['gold_range'] or $web['silver_range'] are empty or not set, 
      // this portion will fail/produce an empty result 
      $maxrange = ($data['range'] > 0)? $web['gold_range'] : $web['silver_range']; 
     } 

    echo $maxrange; 

Этот, кстати, это не ответ так, как он разрушает ваш код. Если вы получаете $maxrange из 15, и это должно быть 20, то может произойти одна из двух вещей:

1) Вы уже установили $maxrange (в цикле или что-то в этом роде), и ваш ввод не подходит ваших условиях, так он сохранит последнее установленное значение $maxrange

2) Ваш вход подходит этот (($data['range'] > 1451600000) && ($data['range'] < 1483200000)) состояние

Ваша дата форматирования написано:

date('d-m-Y H:i','1483200000'); 

Вы можете отформатировать дату, проверив параметры форматирования на php website.

+0

Огромное вам спасибо! –

0
if(data['range']>1483200000) 
$maxrange=20; 
else{ 
    if($data['range'] > 1451600000 && $data['range'] < 1483200000) 
      $maxrange=15; 
     else{ 
      if($data['range'] > 0) 
       $maxrange=$web['gold_range']; 
      else 
       $maxrange=$web['silver_range']; 
     } 
} 
+0

Thanx ... оцените много! –

0

Для преобразования Int Вэла на сегодняшний день

$intVal = '1483200001'; 

$dateTime = date('Y-m-d H:i:s', strtotime($intVal)); 
+0

Спасибо за помощь –

Смежные вопросы