Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [PHP,MySQL] множественный UPDATE (http://forum.oszone.net/showthread.php?t=228613)

blackmane 23-02-2012 16:01 1865195

[PHP,MySQL] множественный UPDATE
 
Доброго времени суток!

Подскажите как сделать так, чтобы при изменении нескольких полей, из веб формы, изменения вносились в БД.
Все поля, а не только последняя строчка.
На одной странице выводится через цикл содержимое таблицы, при помощи checkbox отправляю запрос к файлу edit.php:
PHP код:

$firm $_POST['firm'];
 if(!empty(
$firm))
 {
     include 
"../../index.php";
 
$query "(" ;
 foreach(
$firm as $val$query.= "$val,";
 
$query substr($query0strlen($query) - ). ")" ;
 
$query mysql_query("SELECT * FROM `firm_print` WHERE `id` IN ".$query);

 
$array mysql_fetch_array($query);
 echo (
"    <div style='width:100%%;'><br /> <!--DIV 25%% OPEN-->
<div style='text-align:center; background-color:#CCC'><strong>{$lang['p_add_firm_print']}<br />(DB firm_print)</strong></div>

<form name='myForm_4' action='update.php'  method='post' onSubmit='return splash_4();'>
<input type='hidden' name='action_e' value='add'>
<table>
<tr><td>{$lang['firm']}</td></tr>"
);
do {
    
printf (
    
"

<tr><td><input type=hidden value='%s'><input name='firm_e' maxlength=60 size=30 value='%s'></td></tr>
    "
    
    
,$array['id'],$array['firm']);
    }
    while (
$array mysql_fetch_array($query));
     
     echo (
"
     <tr><td><input type='submit' value='{$lang['send']}'></td></tr>
     </table>

</form>
</div><!--DIV 25%% CLOSED-->"
);
 include 
"../../footer.php";
 } 

Где оно выводится и я изменяю поля, с одним полем проблем никаких нет, а вот несколько?, вычитал что нужно использовать foreach, но он мне вообще не понятен ((
update.php
PHP код:

include "../../data/dbconfig.php";
//print_r ($_POST);
$firm_e   $_POST['firm_e'];
$id_e $_POST['id_e'];
$action_e=$_POST['action_e'];
if (
$action_e=="add")
    { 
            
$sql="UPDATE `firm_print` SET `firm`='$firm_e' WHERE `id`='$id_e'";
$r=mysql_query ($sql);
header ("Location: ../insert_print.php");
}
 else (
mysql_error()); 

Предпринял жалкую попытку сделать через цикл, но результат равен нулю, также попробовал так:
PHP код:

include "../../data/dbconfig.php";
print_r ($_POST['firm_e']);
$firm_e   $_POST['firm_e'];
$id_e $_POST['id_e'];
$action_e=$_POST['action_e'];
if (
$action_e=="add")
    { 
    foreach(
$firm_e as $id=>$firm_e) {
 
$q mysql_query ("UPDATE `firm_print` SET `firm`='$firm_e' WHERE `id`='$id_e'");}

 }
}
 else (
mysql_error()); 

+
PHP код:

<input name='firm_e[%s]' maxlength=60 size=30 value='%s'

Как это реализовать?
Заранее благодарен.


Время: 21:14.

Время: 21:14.
© OSzone.net 2001-