Forum Webscript.Ru

Программирование => PHP => Тема начата: Anubi от 17 Декабря 2002, 22:49:11

Название: Вопрос???
Отправлено: Anubi от 17 Декабря 2002, 22:49:11
:confused:
Всем привет.
У меня вопрос. Как мне в цыкле организовать перебор всех значений формы?
С помощю PHP-скрипта выводится список например товаров из MYSQL.Напротив каждого товара
стоит checkbox. В поле value елемента checkbox присваивается , например цена.
Пользователь отмечает необходимые ему товары, и при нажатии кнопки скрипт
путем сумирования checkbox1.value+checkbox2.value ... checkbox n .value получает
сумму покупки.
Все хорошо но вот как сделать это сумирование в цыкле?

Если эта идея ошибочна, буду благодарен любым подсказкам и предложением.
Спасибо за внимание.
Название: Вопрос???
Отправлено: Tronyx от 17 Декабря 2002, 23:11:42
Цитировать
Все хорошо но вот как сделать это сумирование в цыкле?

А если уже готово, то нафига тебе именно цикл? посмотри foreach например.
Вообще вопрос какой-то странный.
Название: Вопрос???
Отправлено: Anubi от 17 Декабря 2002, 23:21:49
Да в том то все и дело что не могу я сделать это сумирование!!!
Как мне это сделать?
Я пробовал так но не вышло.
for($i=1;$i<=$num;$i++)
      {
$checkbox=$checkbox.$i;
      }  
echo"$checkbox";
Название: Вопрос???
Отправлено: Макс от 18 Декабря 2002, 00:48:14
что-то вроде этого

$sum = 0;
for($i=1;$i<=$num;$i++)
{
$sum +=max(0, intval($_POST[\'checkbox\'.$i]));
}

Если используеш GET то замени POST на GET

ЗЫ
только ИМХО в checkbox надо писать id товаров а не цену
">
а в скрипте, принимать список id, которые юзер выбрал и из таблицы выбрать суммарную цену:

$pids = array();
$pids = array_filter($_POST[\'pids\'], "intval");
if (sizeof($pids)) {
   $res = mysql_query("SELECT sum(price) FROM  table WHERE pid IN (".implode(",",$pids).")");
   $row = mysql_fetch_row($res);
   $sum_price = $row[0];
}

примерно так.
Название: Вопрос???
Отправлено: Million от 18 Декабря 2002, 15:46:50
Можно и так:

$sum_=_0;

for($i=1;$i<=$num;$i++)
{
$ch=checkbox.$i;
$sum_+=$$ch;
}
Название: Вопрос???
Отправлено: Croaker от 18 Декабря 2002, 16:32:17

reset ($HTTP_POST_VARS);
while (list ($key, $val) = each ($HTTP_POST_VARS)) {
    $sum+=$val;
}