Передача данных через раскрывающийся список

$_Вадим

Новичок
Всем привет. Пытаюсь закончить начатое.
В форме с перечнем ассортимента, напротив каждой позиции выпадает список с номером причины.
PHP:
while ($assortiment = mysql_fetch_array ($assort))

           {

            if (isset($assortiment['specifical_id']))
            {
            $b = $assortiment[id];
            print ("<table><tr><td width=280px>$assortiment[short_name]
           	</td><td>

           	<select size='1' name='list[$b]'>
           	<option value='1'>1</option>
           	<option value='2'>2</option>
           	<option value='3'>3</option>
           	<option value='4'>4</option>
           	<option value='5'>5</option>
           	<option value='7'>7</option>
           	</select>

           	</td></tr></table>");

             }
           }
Данные передаются обработчику
PHP:
 foreach ($_POST['list'] as $val)
      	printf ("$val<br>");
      
      {

     	$li = mysql_query ("SELECT * FROM `assort` WHERE `ID` = '$val'") or die(mysql_errors());
 	  	$limit = mysql_fetch_array ($li);
        $res = mysql_query ("INSERT INTO result_details  (result_id, prod_id, reas) VALUES ($id, $val, 1)");

       	print ("<table weght=280px align='center' ><tr>$limit[short_name]</tr></table><br>");

      }
В итоге нужно чтобы к id товара привязался номер причины и все записалось в бд.
Но не получается.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
А что у тебя тут должно происходить если ты прервал цикл поставив свой printf ("$val<br>"); до скобки?
 

$_Вадим

Новичок
это я пытался посмотреть что записывает в переменную $val но по моему цикл не прерван.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Я конечно не интерпретатор, могу и ошибиться, но мне кажется, что ты не прав ;) Попробуй внутри скобор цикла написать echo "@<BR>";
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
PHP:
foreach ($_POST['list'] as $val)
          printf ("$val<br>");
      
      {
         echo "@<BR>";
         $li = mysql_query ("SELECT * FROM `assort` WHERE `ID` = '$val'") or die(mysql_errors());
           $limit = mysql_fetch_array ($li);
        $res = mysql_query ("INSERT INTO result_details  (result_id, prod_id, reas) VALUES ($id, $val, 1)");

           print ("<table weght=280px align='center' ><tr>$limit[short_name]</tr></table><br>");

      }
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Дальше считаем собачек.
 

$_Вадим

Новичок
А для чего и считать если сам цикл работает правильно. Проблема в том что я не знаю как правильно передать в одном массиве и Id товара и значение которое выбираем из списка.
 

c0dex

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

http://www.phpfaq.ru/debug

Теперь скажи, id это то, что ты подразумеваешь под id-товара? Берется с assort?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
У тебя в $val лежит, то, что ты выбрал в форме, так? Значит половина задачи уже решена. Теперь надо понять откуда взять id, товара. А берется он у тебя с assort. Там есть поля в таблице, могу лишь догадываться какие, но думаю что оно у тебя зовется как-то типа id?

Тебе надо записать данные в таблицу, так вот, если ты посмотришь мануалы по функциям, которые там у тебя есть, то увидишь, что нужный тебе элемент есть внутри массва $limit. Сделай ему

PHP:
print_r($limit);
и посмотри что в нем.

Скорей всего тебе надо будет написать что-то вроде:

PHP:
$res = mysql_query ("INSERT INTO result_details  (result_id, prod_id, reas) VALUES ($limit['id'], $val, 1)");
 

$_Вадим

Новичок
В том то и дело что в $val помещается не совсем то. Пробовал
PHP:
list($id_t, $val) = each($_POST['list']);
но все равно не передает id товара в цикле, а только первой строкой.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
printf ("$val<br>"); то есть не выводит то, что надо? Что значит помещается не совсем то?

Я тебе про цикл писал уже. У тебя он не рабочий. Иди перечитай почему.
 
Сверху