2015-08-27 3 views
1

Я немного застрял в инструкции if на моем PHP-коде. Я знаю, что это, вероятно, основной вопрос для большинства из вас там, но я застрял, и мне нужна помощь.PHP If Statement Logic

У меня есть 2 переменные $ max и $ min, которые я должен сравнить с двумя другими max и mins, называемыми $ valor и $ minimo, чтобы проверить, встречаются ли они где-нибудь. У меня в основном есть набор значений, таких как min = 20 и max = 30.

Я хочу сравнить их с другими max и min и проверить, встречаются ли значения где-то, например, если min второго - 29. Я хочу, чтобы он вводил оператор if.

Вот заявление, которое я получил прямо сейчас. Но это не работает, и я просто не могу получить логику. Любая помощь?

EDIT: Добавлен пример того, чего я пытаюсь достичь в комментариях.

if ($min >= $valor && $min <= $minimo || $max >= $valor && $max <= $minimo) 
    { 
     //Do nothing 
    } 
else 
    { 
     $queryq = "INSERT INTO precos_area (id_tecido,area_minima,area_maxima,preco) VALUES ('".$id_tipo."', '".$min."', '".$max."', '".$price."')"; 
     $resultsq = mysql_query($queryq) or die(mysql_error()); 
    } 
+0

|| $ max> = $ valor && $ max <= $ minimo) является максимальным, чем раньше, чем доблесть И меньше минимально в то же время? – Minzkraut

+0

Моя идея для значений от одного макс и одного мин, а не для переплетения с другими. Представьте себе линию. Один макс и один мин показывают сегмент, который нужно нарисовать. Другой показывает другой сегмент, который должен быть окрашен другим цветом. Мое желание - это если это проверка, если они когда-либо пересекаются, чтобы сделать заявление, если они делают – Heatmanofurioso

ответ

2

У меня есть ощущение, 2-ой макс и мин являются навыворот

if (($min >= $minimo && $min <= $valor) || ($max >= $minimo && $max <= $valor)) 

EDIT - поймать ситуацию, которая GView упоминает вы, вероятно, следует проверить, как диапазоны. Это будет поймать ситуацию, когда один диапазон полностью в другом диапазоне: -

if (($min >= $minimo && $min <= $valor) 
|| ($max >= $minimo && $max <= $valor) 
|| ($minimo >= $min && $minimo <= $max) 
|| ($valor >= $min && $valor <= $max)) 
+0

Это решило! Спасибо – Heatmanofurioso

+2

Как насчет случая, когда $ min <$ minimo AND $ max> $ valor. В этом случае линии перекрываются, но ваша логика не найдет их правдой. Это проблема? – gview

1

Использование

if (($min >= $valor && $min <= $minimo) || ($max >= $valor && $max <= $minimo)) 
+0

Спасибо. Я попробовал их группировать. Но он все еще не работает. Может ли кто-нибудь помочь мне немного по логике на этом? Я сделал комментарий к моему основному вопросу, объясняя, что я пытаюсь достичь. – Heatmanofurioso

+1

Можете ли вы определить свои значения здесь, пожалуйста. Например, –

+0

. $ min равно 10, а $ max - 20. Я хочу проверить, не вставлены ли какие-либо значения в $ minimo и $ valor. Похоже, вы пытаетесь нарисовать две разные области с разными цветами. Они никуда не пересекаются. Таким образом, $ minimo не может быть между 10 и 20, а также $ valor может быть в этих значениях – Heatmanofurioso

0

Я думаю, что вы ищете что-то вроде этого:

<?php 

$min = 10; 
$max = 20; 
$valor = 25; 
$minimo = 30; 

if (($min >= $minimo && $min <= $valor) || ($max >= $minimo && $max <= $valor)) { 
print "win"; 
} 

else { 
print "lose"; 
} 

?>