Здраствуйте. Помогите оптимизировать код. Суть в чем: есть один Select с name="food", при нажатии на кнопку добавляется еще один с именем "food2", потом с "food3" и тд. Также возле каждого Select есть поле food-weight (food-weight2 и тд). В обрабатывающем скрипте нужно обработать (извиняюсь за тавтологию) каждую такую пару, которая есть на странице. Есть какой то способ такое реализовать, кроме как вариант снизу (скорее всего совершенно не имеющий права на жизнь)? PHP: <?php if ($_POST['food1'] and !$_POST['food2'] and $_POST['enter']) { $Row = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT `water`, `sugar` FROM `food` WHERE `id` = '$_POST[food1]'")); $Water = ($Row['water'] * $_POST['food-weight']); $Sugar = ($Row['sugar'] * $_POST['food-weight']); } else if ($_POST['food1'] and $_POST['food2'] and !$_POST['food3'] and $_POST['enter']) { $Row = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT `water`, `sugar` FROM `food` WHERE `id` = '$_POST[food1]'")); $Row2 = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT `water`, `sugar` FROM `food` WHERE `id` = '$_POST[food2]'")); $Water = ($Row['water'] * $_POST['food-weight'] + $Row2['water'] * $_POST['food-weight2']); $Sugar = ($Row['sugar'] * $_POST['food-weight'] + $Row2['sugar'] * $_POST['food-weight2']); } else if ($_POST['food1'] and $_POST['food2'] and $_POST['food3'] and !$_POST['food4'] and $_POST['enter']) { $Row = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT `water` FROM `food` WHERE `id` = '$_POST[food1]'")); $Row2 = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT `water` FROM `food` WHERE `id` = '$_POST[food2]'")); $Row3 = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT `water` FROM `food` WHERE `id` = '$_POST[food3]'")); $Water = ($Row['water'] * $_POST['food-weight'] + $Row2['water'] * $_POST['food-weight2'] + $Row3['water'] * $_POST['food-weight3']); $Sugar = ($Row['sugar'] * $_POST['food-weight'] + $Row2['sugar'] * $_POST['food-weight2'] + $Row3['sugar'] * $_POST['food-weight3']); } // и так далее... ?>
Почему это не имеющий? Это работает? Как говорится, пока оно работает - ничего не трогай))) Так и живём) Хотя код, конечно - бяка.
Если код бяка - его надо переписывать. Но мой уровень знаний в php, к сожалению, не позволяет что то сделать с этим скриптом. Может тут у кого-то появится идея...
можно сделать фудвейт равным нулю у тех, которые не включены. Тогда при умножении там в формуле будет ноль и пох. Т.е. можно будет оставить только третий вариант.
Мне такое пришло на ум PHP: <?php $num = count($_POST)/2; for($i=0; $i < $num; $i++){ $food = 'food'.$i; $foodweight = 'food-weight'.$i; echo $_POST[$food]; echo $_POST[$foodweight]; }