Вычисление размеров

Максимка

Новичок
Добрый день, есть задача имея 2 поля вводить и получать значения если введенные данные соответствуют заданному диапазону. например есть заданный диапазон для ширины: 100-300 и для высоты: 500-800, выводить необходимый размер, например 75, т.е. если юзер введет скажем 150 ширину и 750 высоту, то ему выдаст 75, вот как это на пхп оформить? чувствую что через if можно, но вопрос - как? подскажите если не сложно
 

hell0w0rd

Продвинутый новичок
Сформулируй задачу конкретней, а потом пиши. А лучше напиши тесты, которую задачу формулируют.
 

Максимка

Новичок
ладно вам стебаться, как обычно в общем:

Код:
<?php
if(@$_POST['height'] && @$_POST['width']){

    $height = $_POST['height'];
    $width  = $_POST['width'];


    $pieces = "N/A";
   
    if ($height >= 900 && $height <= 1100 && $width >= 800 && $width <= 1000){
        $pieces = 53;
    }elseif($height >= 500 && $height <= 899 && $width >= 600 && $width <= 799){
        $pieces = 52;
    }

    printf(" %d ", $pieces);
}
?>
вот что получается, вот как мне теперь это все прикрутить к моим инпутам, чтоб введя данные в них нужные диапазоны, я получил в поле значение $pieces
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Максимка, @ замени на !empty(). В остальном я не знаю как другие, но фразу

чтоб введя данные в них нужные диапазоны
я не поимаю. Тебе надо вывести в форму значение $pieces?
 

Максимка

Новичок
я извеняюсь, имелось ввиду что есть такая струкутура - 2 инпута и инпут с результатом:

Код:
<ul>
          <li>
            <label>Width</label>
            <input type="text" name="width" id="widh_text_one" class="size_text" ></span>
          </li>
          <li>
            <label>Height</label>
            <input type="text" name="height" id="height_text_two" class="size_text" ></span>
          </li>
          <li>
            <label>Results</label>
            <input type="text" name="results" class="size_text_"></span>
          </li>
        </ul>
как мне теперь используя данный код:

Код:
<?php
if(!empty$_POST['height'] && @$_POST['width']){
$height = $_POST['height'];
$width = $_POST['width'];
$pieces = "N/A";
if ($height >= 900 && $height <= 1100 && $width >= 800 && $width <= 1000){
$pieces = 53;
}elseif($height >= 500 && $height <= 899 && $width >= 600 && $width <= 799){
$pieces = 52;
}
printf(" %d ", $pieces);
}
?>
совместить это все
 

hell0w0rd

Продвинутый новичок
calculator.tpl.php
PHP:
<ul>
    <li>
        <label>Width</label>
        <input type="text" name="width" id="widh_text_one" class="size_text" ></span>
    </li>
    <li>
        <label>Height</label>
        <input type="text" name="height" id="height_text_two" class="size_text" ></span>
    </li>
    <li>
        <label>Results</label>
        <input type="text" name="results" class="size_text_" value="<?php echo $pieces; ?>"></span>
    </li>
</ul>
index.php
PHP:
<?php
$pieces = "N/A";
if (!empty($_POST['height']) && !empty($_POST['width'])) {
    $height = $_POST['height'];
    $width = $_POST['width'];
    if ($height >= 900 && $height <= 1100 && $width >= 800 && $width <= 1000){
        $pieces = 53;
    } elseif ($height >= 500 && $width >= 600) {
        $pieces = 52;
    }
}
include __DIR__.'/calculator.tpl.php';
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Максимка, я когда писал прошлое сообщение, я имел в виду это:

!empty($_POST['height']), вцелом пост выше есть ответ на твой вопрос
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Вурдалак, худший случай не всегда бывает, но вообще если значение в середине массива?
 

hell0w0rd

Продвинутый новичок
c0dex, да какая разница сколько. А если надо сравнить с 1 и 10000? подход в принципе не правильный, что тут обсуждать?
Зачем от O(1) переходить к O(n)?)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
hell0w0rd, мне хотелось узнать как работает сам поиск в массиве, банальным циклом или как-то более изощренно, мне в принципе пофигу как автор это руализует, и понятное дело, что O(n) не есть хорошо.
 

Breeze

goshogun
Команда форума
Партнер клуба
hell0w0rd, мне хотелось узнать как работает сам поиск в массиве, банальным циклом или как-то более изощренно, мне в принципе пофигу как автор это руализует, и понятное дело, что O(n) не есть хорошо.
там обычный цикл
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Breeze, угу, я уже даже исходники стал изучать)
 

Breeze

goshogun
Команда форума
Партнер клуба
Breeze, угу, я уже даже исходники стал изучать)
так самый правильный источник =)
В phpng, например, while заменили на do ... while с вложенным for.

из хитрого там особо ничего не придумаешь, разве что flip map, чтобы к ~О(1) свести, но это память
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Breeze, если учесть что С я вообще не знаю даже близко, то искал вообще грепом по всей папке с php, нашел быстро) Надо будет книжку купить по сям.
 
Сверху