Ситуация такая.
Делаю на своем сайте форму подсчета заказа товара из забугорного магазина.
Есть таблица в БД содержащая информацию о продукции "id, название, вес, цена"
Выводятся списком, через while, в html форме, напротив каждого стоит select с "name=id_продукта" где выбирается кол-во каждого продукта.
Кол-во выводимых продуктов заранее не известно.
Есть другие поля, но они статичны и не мешают.
После того как в форме указали кол-во каждого из продуктов (От 0 до 10), отправляю форму скрипту, который вновь отображает уже то что было выбрано и сколько выбрано.
Вопрос над которым бьюсь уже пол дня: "Как получить значение каждого кол-ва продуктов с указанием ID продукта?".
Вывести целиком (Продукт, ID, указанное пользователем кол-во, вес) получилось через while, но нужно именно по отдельности. Т.к. необходимо подсчитать общий вес всех продуктов, общую цену, а потом на основе веса еще добавить к сумме стоимость пересылки.
В while же получается работать только с одним значением, между собой их суммировать не получается. К томуже все дело усложняется неизвестным кол-вом элементов формы + неизвестным выбором пользователя.
Заранее благодарен за возможный пример такой функции.
P.S. Хоть эта задача никак не связана с заработком (Делаю исключительно для удобства пользователей), тому кто реально поможет с меня пиво в виртуальной валюте:)
Спустя 24 минуты, 39 секунд (1.11.2011 - 21:59) Игорь_Vasinsky написал(а):
ob_start();
//while(...)
$productBook = ob_get_contents();
ob_end_clean();
echo $productBook;
Это называется - Буферизация ;)
Спустя 40 минут, 19 секунд (1.11.2011 - 22:39) Игорь_Vasinsky написал(а):
пропал благодеятель
![biggrin.gif](http://phpforum.ru/html/emoticons/biggrin.gif)
Спустя 9 часов, 1 минута, 30 секунд (2.11.2011 - 07:40) Axel написал(а):
Никуда не пропал.
Но из буффера опять выводится все содержимое while подряд в одной переменной.
А нужно, к примеру, в while эти переменные:
$cena;
$weight;
Результат должен быть
$summa = $cena1 + $cena2 + $cena3 и т. д. пока выполняется while
$ves = $weight1 + $weight2 + $weight3
Чтобы в результате в отдельные переменные вышла сумма и общий вес товаров.
Но из буффера опять выводится все содержимое while подряд в одной переменной.
А нужно, к примеру, в while эти переменные:
$cena;
$weight;
Результат должен быть
$summa = $cena1 + $cena2 + $cena3 и т. д. пока выполняется while
$ves = $weight1 + $weight2 + $weight3
Чтобы в результате в отдельные переменные вышла сумма и общий вес товаров.
Спустя 3 минуты, 27 секунд (2.11.2011 - 07:44) McLotos написал(а):
Вы не могли бы вылоэить сам код, чтобы хотябы примерно понять как у Вас всё сделано, и что тут можно сделать для решения Вашей проблемы?
Спустя 34 минуты, 30 секунд (2.11.2011 - 08:18) Axel написал(а):
С утра, на свежую голову вроде решил
Записывая каждый цикл while
$array_ves['key'.$sale_id] = $weight * $count;
Далее просто
echo (array_sum($array_ves));
McLotos, в том то и дело, что там кода то пока и нет почти:)
Записывая каждый цикл while
$array_ves['key'.$sale_id] = $weight * $count;
Далее просто
echo (array_sum($array_ves));
McLotos, в том то и дело, что там кода то пока и нет почти:)
$sql = 'SELECT *
FROM '.SALES_TABLE.'
WHERE have >' . '0';
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$sale_id = $row['sale_id'];
$ves = $row['weight'];
$count = request_var($sale_id, '', true);
$array_ves['key'.$sale_id] = $ves * $count;
}
echo (array_sum($array_ves));