UPDATE нескольких строк

Pomor

Новичок
UPDATE нескольких строк

Всем доброго времени суток!
В первые столкнулся с такой задачей:
в административной чати сайта будет выводиться к каждому товару
таблица с описанием моделей этого товара...
моделей может быть несколько
соответственно и строк сгенерированных этим циклом тоже:
PHP:
foreach($DATAS as $mod){
               echo"<tr class='mod'>
            <td><input  name='model' type='text'  value='".$mod['model']."' size='16'></td>
            <td><input  name='Wat' type='text'  value='".$mod['Wat']."' size='16'></td>
            <td><input  name='vlitr' type='text'  value='".$mod['vlitr']."' size='16'></td>
            <td><input  name='Saiz' type='text'  value='".$mod['Saiz']."' size='16'></td>
            <td><input  name='t_nagr' type='text'  value='".$mod['t_nagr']."' size='16'></td>
            <td><input  name='ves' type='text'  value='".$mod['ves']."' size='16'></td>
            <td><input  name='sum' type='text'  value='".$mod['sum']."' size='16'> </td>
            <td><input  name='skid' type='text'  value='' size='16'></td></tr>";
            }
все эти данные можно редактировать.
при нажатии кнопки "сохранить" все изменения вносятся в БД.
НО, хотелось чтоб при нажатии "сохранить" обновились все модели данного товара...
пока я из каждой таблицы выбираю конкретную модель изменяю и сохраняю потом следующую,
PHP:
mysql_qw("UPDATE ".$tab." SET id_prod=".$id_prod.", model=?, Wat=?, komp=?, Saiz=?, ves=?, sum=?, skid=?  ",
                $_POST['model'], $_POST['Wat'], $_POST['komp'], $_POST['Saiz'], $_POST['ves'], $_POST['sum'], $_POST['skid'] )
               or die("Ошибка записи данных о модели 7 в бд:" . mysql_error());
НЕУДОБНО

как одним запросом обновить все модели?
в БД в таблице с моделями, каждой модели соответствует одна запись...

Сейчас пытаюсь сделать это в цикле, только как цикл направить чтоб по одной строке <tr> , получал данные из input и выполнял запрос...
не хотелось бы изобретать велосипед может уже есть решения ?
 

FractalizeR

Новичок
Что-то я в UPDATE не вижу WHERE части.... У вас разве одна таблица на каждую модель?

А вообще массив данных из HTML можно передать, установив
d><input name='goods[1][model]' type='text'.....
Я так понимаю, именно это вам нужно?

А обновить несколько различных строк с помощью одного UPDATE, боюсь, не получится.
 

Pomor

Новичок
FractalizeR

Спасибо тебе, натолкнул так сказать на мысль...
про массивы я и забыл, сечас сделаю...
завтра выложу код, то что получилось .
 

Pomor

Новичок
реализовал данную задачу вот таким путём:
Может коряво и через жопу, но оно работает и проверил работает правильно

получаем количество моделей для конкретного товара:
PHP:
$k=mysql_query("SELECT count(".$id_tab.") FROM ".$tab." WHERE ".$tab.".id_prod=". $id_prod ." ");
		  $kol=mysql_fetch_row($k);
		  $total_kols=$kol[0];
в цикл добавил переменную $i(счётчик)
PHP:
 $i=0;
		 	foreach($DATAS as $mod){
		 	$i++;
		   echo"<tr class='mod'><td><input type='hidden' name='id_tab_".$i."'  value='".$mod['id_kotl']."' />
<input  name='model_".$i."' type='text'  value='".$mod['model']."' size='16'></td>
		   <td><input type='hidden' name='kol'  value='".$total_kols."' />
<input  name='Wat_".$i."' type='text'  value='".$mod['Wat']."' size='16'></td><td>
<input  name='Dimoh_".$i."' type='text'  value='".$mod['Dimoh']."' size='16'></td>
		   <td><input  name='Saiz_".$i."' type='text'  value='".$mod['Saiz']."' size='16'></td><td>
<input  name='ves_".$i."' type='text'  value='".$mod['ves']."' size='16'></td>
		   <td><input  name='sum_".$i."' type='text'  value='".$mod['sum']."' size='16'></td>
		   <td><input  name='skid_".$i."' type='text'  value='' size='16'></td></tr>";
		  }
сам запрос теперь выполняется в цикле:
$k - количество моделей для товара
PHP:
  for ($i=1; $i<=$k; $i++) {
			  mysql_qw("UPDATE ".$tab." SET id_prod=".$id_prod.", model=?, Wat=?, Dimoh=?, Saiz=?, ves=?, sum=?, skid=?  WHERE id_kotl=".$_POST['id_tab_'.$i.'']."  ",
		 	  $_POST['model_'.$i.''], $_POST['Wat_'.$i.''], $_POST['Dimoh_'.$i.''], $_POST['Saiz_'.$i.''], $_POST['ves_'.$i.''], $_POST['sum_'.$i.''], $_POST['skid_'.$i.''] )
		 	  or die("Ошибка записи данных о модели 2 4 5 в бд:" . mysql_error());
		 	}

?
PHP:
ннн
 
Сверху