如何做到多料的同步

一次叫出多料,然後在同一中「逐一」「分」做不同的理,最後「同」料 update
or insert 。每一料所收到的update 、insert不相同!
============================ 理要在於 _____ loop + array
1.料叫出料: db_query行looping的同,把相位需要update的料通通入array.
依照各人需求,些料可以用text、checkbox、或者hidden等各型呈。然,checkbox是最常的type.
例如,件理就大量使用checkbox. 2.修改後的料回存作 要在count(array) + loop

======================================================
####2.activate.php:资料更新后,透过loop+array完成回存……………….

<tr>
<input type=”submit” name=”submit” value=”激活”>
<input type=”submit” name=”submit2″ value=”冻结”>
</tr>
</form>

  • db_update:
    根count的果行旋,把db_update放去,loop去完成所有料的update回存作。
    例如下: ================================================
    ####1.update.php: 以loop+array取出料以便update…….. form
    action=”activate.php” #在呼叫料 $query=”select * from $userstable
    where………………. #入loop逐一取出料 $i=0; while ($i $num):
    …………… $id=mysql_result($result,$i,”id”); ………………
    ………………………. #以的type取出必更新的位,成array
    ………. echo “td align………………. echo “td align=middleinput
    type=text size=3 name=”Cname[]” value=”$name”/td/tr”; echo “input

    type=hidden name=”Cid[]” value=”$id””; $i++; endwhile;

    ####2.activate.php:料更新後,透loop+array完成回存……………….
    ……. for ($i = 0; $i count($Cname); $i++) { $name = $Cname[$i];
    $id= $Cid[$i]; $query = “update $userstable set name=$name where
    id=$id”; ………….

要点在count + loop + db_update:
根据count的结果进行迴旋,把db_update放进去,让loop去完成所有资料的update回存作业。
范例如下: ================================================
####1.update.php: 以loop+array取出资料以便update……..

 

$query = “update $userstable set name=’$name’ where id=’$id'”;
………….

<form name=”form1″ method=”post” action=”index_ok.php”>
<tr>
<td>商品名称</td>
<td>编号</td>
<td>单价</td>
<td>数量</td>
<td>产地</td>
<input name=”data” type=”hidden” value=”<?php echo
$data;?>”>
</tr>

#进入loop逐一取出资料 $i=0; while : …………… $id=mysql_result;
……………… ……………………….
#以适当的type取出必须更新的栏位,构成array ………. echo “

for($i=0;$i<count($sp_name);$i++){

……. for ($i = 0; $i < count { $name = $Cname[$i]; $id=
$Cid[$i];

<form name=”form1″ method=”post” action=”index_ok.php”>
<?php $query=”select * from tb_users”;
          $result=mysql_query($query);
             if($result==true){
             while($myrow=mysql_fetch_array($result)){
?>
<tr>
<td><input name=”<?php echo $myrow[id];?>
type=”checkbox”
value=”<?php echo $myrow[id]; ?></td>
<td><?php echo $myrow[user];?></td>
<td><?php echo $myrow[popedom];?></td>
<td><?php echo $myrow[operation];?></td>
</tr>
<?php }} ?>

db_query进行looping的同时,把相关栏位需要update的资料通通纳入array.
依照各人需求,这些资料可以用text、checkbox、或者hidden等各种型态呈现。当然,checkbox是最常见的type.
例如,邮件处理网页就大量使用checkbox.

总结,

“; echo “”;

list()函数用于一次性为多个变量赋值

$i++; endwhile;

表单处理页

2.修改后的资料回存作业

if($submit==”激活”){
    while(list($name,$value)=each($_POST)){
        $result=mysql_query(“update tb_user set operation=’激活’ where
id='”.$name.”‘”);
    if($result==true){
        echo “<script>
alert(‘激活成功’);window.location.href=’index.php’;</script>”;}}

一次叫出多笔资料,然后在同一个网页中「逐一」「分别」做不同的处理,最后「同时」对资料库
update or insert 。每一笔资料所收到的update 、insert数据并不相同!
============================ 处理要点在于 _____ loop + array

这个在表单中是代表数组,如果你有10个表单那么我们name=counts[]
意思他们内个都是一样数组,知道这个是数组了就知道下面知道为什么会使用遍历了。

#在这里呼叫资料库 $query=”select * from $userstable
where……………….

表单处理页
<?php session_start();
include(“conn/conn.php”);
if($submit==true){
    for($i=0;$i<count($sp_name);$i++){
        $path=$_POST[“sp_name”][$i];
        $path1=$_POST[“sp_number”][$i];
        $path2=$_POST[“price”][$i];
        $path3=$_POST[“counts”][$i];
        $path4=$_POST[“address”][$i];
        $query=mysql_query(“insert into
tb_products(sp_name,sp_number,price,counts,address,data)
values(‘$path’,’$path1′,’$path2′,’$path3′,’$path4′,’$data’);}
    if($query==true){
        echo”提交成功”;
    else
        echo”提交失败”;}
}
?>

1.从资料库叫出资料:

counts[]

if($submit2==”冻结”){
    while(list($name,$value)=each($_POST)){
        $result=mysql_query(“update tb_user set operation=’冻结’ where
id='”.$name.”‘”);
    if($result==true){
        echo “<script>
alert(‘冻结成功’);window.location.href=’index.php’;</script>”;}}
}
?>

两个实现结果是一样的的哦。

<input type=”submit” name=”submit” value=”提交”>
<input type=”reset” name=”reset” value=”重置”>
</form>

 代码如下

主要通过while, list(),each()函数来实理数据的批量更新

<tr>
<td><input name=”sp_name[]” type=”text” id=”sp_name”
size=”15″></td>
<td><input name=”sp_number[]” type=”text” id=”sp_number”
size=”10″></td>
<td><input name=”price[]” type=”text” id=”price”
size=”8″></td>
<td><input name=”counts[]” type=”text” id=”counts”
size=”8″></td>
<td><input name=”address[]” type=”text” id=”address”
size=”15″></td>
</tr>

<?php session_start(); include(“conn/conn.php”);?>

while(list($name,$value)=each($_POST)){
      

表单提交页面

for 或while

批量数据录入

<?php session_start(); include(“conn/conn.php”)

其中,应用一个count()函数来获取数组中元素的个数。
int count(mixed var);

数据库连接页

批量更新数据

 代码如下

因为表单过来的是数组我们就可以遍历数组然后对数据进行保存了,如下代码

<?php
$id=mysql_connect(“localhost”,”root”,”password”)
or die(‘connection failed’.mysql_error());
if(mysql_select_db(‘mydatabase’,$id))
echo “”;
else
echo(‘select db failed:’.mysql_error());
?>

设计方法:同时提交多条表单记录,为每一条记录设置相同的文本域名称,然后在表单处理页中,通过for
循环来读取提取表单提交的数据,最后以数据的形式将数据逐条添加到数据库中。

心细的朋友会发现两个例子都有几个共同点,一个是表单from的表单名是以counts[]数组形式了,而在php处理接受页面都会使用for
或while来实现遍历了,下面我就简单的给大家分析这两个例子。

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图