|
|
|
|
|
для: olejek
(03.06.2008 в 16:00)
| | большое спасибо. | |
|
|
|
|
|
|
|
для: kid_a
(03.06.2008 в 15:35)
| | Ну, тогда можно так:
<?
foreach ($arv as $key => $arv_val)
{
if (count($arv_val))
$query_string = "update $table set ";
foreach ($arv_val as $k => $v)
{
$query_string .= "$pole[$k]=$v";
if ($k < count($arv_val)-1) //если поле не последнее, добавляем запятую
$query_string .= ', ';
}
$query_string .= " where id=$upid[$key]";
}
?>
|
| |
|
|
|
|
|
|
|
для: olejek
(03.06.2008 в 15:27)
| | спасибо,
но дело в том, что массивы формируются динамически,
заранее не знаю, сколько полей и соотв. значений нужно перечислить в запросе. запуталась в циклах.
единственное: кол-во формируемых текстовых полей=число id*число полей в таблице (тоже беру из запроса). | |
|
|
|
|
|
|
|
для: kid_a
(03.06.2008 в 14:29)
| | Однозначно, нужно делать массив $arv многомерным:
<?
$arv = Array (array(1, 'a1', 'b1'),
array(2, 'a2', 'b2'));
?>
|
Тогда если два других массива будут иметь вид:
<?
$upid = Array (1, 2);//id таблицы
$pole = Array ('id', 'pole1', 'pole2'); //поля таблицы
?>
|
то можно так обновлять записи:
<?
foreach ($arv as $key => $arv_val)
{
$query_string = "update $table set $pole[0]=$arv_val[0], $pole[1]=$arv_val[1], $pole[2]=$arv_val[2] where id=$upid[$key]";
}
?>
|
| |
|
|
|
|
|
|
|
$upid[] Array ( [0] => 1 [1] => 2 )//id таблицы
$pole[] Array ( [0] => id [1] => pole1 [2] => pole2 ) //поля таблицы
$arv[] Array ( [0] => 1 [1] => a1 [2] => b1 [3] => 2 [4] => a2 [5] => b2 ) //значения в input text (=поля таблицы*кол-во id)
|
в данном случае запроса будет 2:
update $table set $pole[0]=$arv[0], $pole[1]=$arv[1], $pole[2]=$arv[2] where id=$upid[0] для id=1
update $table set $pole[0]=$arv[3], $pole[1]=$arv[4], $pole[2]=$arv[5] where id=$upid[1] для id=2
|
как выполнить это в цикле (динамич. массивы)? | |
|
|
|
|