[РЕШЕНО] Прошу, проверьте вложенный PHP код на ошибки.

Главные вкладки

Аватар пользователя grixis grixis 30 марта 2015 в 12:18

Помогите пожалуйста разобраться с операторами. В PHP я нуб абсолютный, поэтому не могу понять косяка. Суть в чем: если подтягиваемые данные = одному из чисел первого ряда должен быть результат - best, если числу из второго то good. Но всегда выводится good

<?phpif (arg(0) == 'node' && is_numeric(arg(1))) {
    $node = menu_get_object();
    $field = field_get_items('node', $node, 'field_sommawithreklam');
    $field_item = reset($field);
    $sommawithreklam = $field_item['value']; // для случая, если тип поля просто текст }
    if ($sommawithreklam == 40 or 40.1 or 40.2 or 40.3 or 40.4 or 40.5 or 40.6) { $sommawithreklam = 'best'; }
    if ($sommawithreklam == 30 or 30.1 or 30.2 or 30.3 or 30.4 or 30.5 or 30.6) { $sommawithreklam = 'good'; }
    echo $sommawithreklam;
  }
?>

Комментарии

Аватар пользователя grixis grixis 30 марта 2015 в 12:19

if (arg(0) == 'node' && is_numeric(arg(1))) {
$node = menu_get_object();
$field = field_get_items('node', $node, 'field_sommawithreklam');
$field_item = reset($field);
$sommawithreklam = $field_item['value']; // для случая, если тип поля просто текст }
if ($sommawithreklam == 40 or 40.1 or 40.2 or 40.3 or 40.4 or 40.5 or 40.6 or 40.7 or 40.8 or 40.9 or 41 or 41.1 or 41.2 or 41.3 or 41.4 or 41.5 or 41.6 or 41.7 or 41.8 or 41.9 or 42 or 42.1 or 42.2 or 42.3 or 42.4 or 42.5 or 42.6 or 42.7 or 42.8 or 42.9 or 43 or 43.1 or 43.2 or 43.3 or 43.4 or 43.5 or 43.6 or 43.7 or 43.8 or 43.9 or 44 or 44.1 or 44.2 or 44.3 or 44.4 or 44.5 or 44.6 or 44.7 or 44.8 or 44.9 or 45 or 45.1 or 45.2 or 45.3 or 45.4 or 45.5 or 45.6 or 45.7 or 45.8 or 45.9 or 46 or 46.1 or 46.2 or 46.3 or 46.4 or 46.5 or 46.6 or 46.7 or 46.8 or 46.9 or 47 or 47.1 or 47.2 or 47.3 or 47.4 or 47.5 or 47.6 or 47.7 or 47.8 or 47.9 or 48 or 48.1 or 48.2 or 48.3 or 48.4 or 48.5 or 48.6 or 48.7 or 48.8 or 48.9 or 49 or 49.1 or 49.2 or 49.3 or 49.4 or 49.5 or 49.6 or 49.7 or 49.8 or 49.9 or 50) { $sommawithreklam = 'best'; }
if ($sommawithreklam == 30 or 30.1 or 30.2 or 30.3 or 30.4 or 30.5 or 30.6 or 30.7 or 30.8 or 30.9 or 31 or 31.1 or 31.2 or 31.3 or 31.4 or 31.5 or 31.6 or 31.7 or 31.8 or 31.9 or 32 or 32.1 or 32.2 or 32.3 or 32.4 or 32.5 or 32.6 or 32.7 or 32.8 or 32.9 or 33 or 33.1 or 33.2 or 33.3 or 33.4 or 33.5 or 33.6 or 33.7 or 33.8 or 33.9 or 34 or 34.1 or 34.2 or 34.3 or 34.4 or 34.5 or 34.6 or 34.7 or 34.8 or 34.9 or 35 or 35.1 or 35.2 or 35.3 or 35.4 or 35.5 or 35.6 or 35.7 or 35.8 or 35.9 or 36 or 36.1 or 36.2 or 36.3 or 36.4 or 36.5 or 36.6 or 36.7 or 36.8 or 36.9 or 37 or 37.1 or 37.2 or 37.3 or 37.4 or 37.5 or 37.6 or 37.7 or 37.8 or 37.9 or 38 or 38.1 or 38.2 or 38.3 or 38.4 or 38.5 or 38.6 or 38.7 or 38.8 or 38.9 or 39 or 39.1 or 39.2 or 39.3 or 39.4 or 39.5 or 39.6 or 39.7 or 39.8 or 39.9) { $sommawithreklam = 'good'; }
echo $sommawithreklam;
}
?>

Аватар пользователя bsyomov bsyomov 30 марта 2015 в 12:36

Вы сравниваете неправильно:
Вместо

<?php
$sommawithreklam 
== 30 or 30.1
?>

должно быть:

<?php
$sommawithreklam 
== 30 or $sommawithreklam == 30.1
?>

Ну и не эффективно - по смыслу должно получиться что-то такое:

<?php
if($sommawithreklam <= 50 && $sommawithreklam >= 40) {
   
$sommawithreklam 'best';
} elseif(
$sommawithreklam <= 39.9 && $sommawithreklam >=30) {
   
$sommawithreklam 'good';
} else {
   
$sommawithreklam 'somethingelse';
}

echo 

$sommawithreklam;
?>
Аватар пользователя grixis grixis 30 марта 2015 в 12:48

Спасибо, попробую!
UPD: работает! Еще раз спасибо! Я просто думал что могут быть проблемы с данными для сравнения Sad