当前位置:首页 > PHP教程 > php应用 > 列表

浅析php批量添加和更新数据的方法实现

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-04 16:01:58 浏览: 评论:0 

批量添加数据和批量更新数据在可以为网站管理员节省不少时间,现在我们来学习一下用phpphp批量添加数据与批量更新数据的实现方法.

php如果要批量保存数据我们只要使用sql的insert into语句就可能实现数据批量保存了,如果是更新数据使用update set就可以完成更新了,操作方法都非常的简单,下面整理两个例子.

批量数据录入

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

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

表单提交页面,代码如下:

  1. <form name="form1" method="post" action="index_ok.php"
  2. <tr> 
  3. <td>商品名称</td> 
  4. <td>编号</td> 
  5. <td>单价</td> 
  6. <td>数量</td> 
  7. <td>产地</td> 
  8. <input name="data" type="hidden" value="<?php echo $data;?>"
  9. </tr> 
  10.  
  11. <tr> 
  12. <td><input name="sp_name[]" type="text" id="sp_name" size="15"></td> 
  13. <td><input name="sp_number[]" type="text" id="sp_number" size="10"></td>  //开源软件:phpfensi.com 
  14. <td><input name="price[]" type="text" id="price" size="8"></td> 
  15. <td><input name="counts[]" type="text" id="counts" size="8"></td> 
  16. <td><input name="address[]" type="text" id="address" size="15"></td> 
  17. </tr> 
  18.  
  19. <input type="submit" name="submit" value="提交"
  20. <input type="reset" name="reset" value="重置"
  21. </form> 

数据库连接页,代码如下:

  1. <?php  
  2. $id=mysql_connect("localhost","root","password"or die('connection failed'.mysql_error());  
  3. if(mysql_select_db('mydatabase',$id))  
  4. echo "";  
  5. else  
  6. echo('select db failed:'.mysql_error());  
  7. ?> 

表单处理页,代码如下:

  1. <?php session_start(); include("conn/conn.php");  
  2. if($submit==true){  
  3.     for($i=0;$i<count($sp_name);$i++){  
  4.         $path=$_POST["sp_name"][$i];  
  5.         $path1=$_POST["sp_number"][$i];  
  6.         $path2=$_POST["price"][$i];  
  7.         $path3=$_POST["counts"][$i];  
  8.         $path4=$_POST["address"][$i];  
  9.         $query=mysql_query("insert into tb_products(sp_name,sp_number,price,counts,address,data) values('$path','$path1','$path2','$path3','$path4','$data');} 
  10.     if($query==true){  
  11.         echo"提交成功";  
  12.     else  
  13.         echo"提交失败";}  
  14. }  
  15. ?> 

批量更新数据

主要通过while, list(),each()函数来实理数据的批量更新,list()函数用于一次性为多个变量赋值,代码如下:

  1. <?php session_start(); include("conn/conn.php");?>  
  2. <form name="form1" method="post" action="index_ok.php">  
  3. <?php $query="select * from tb_users";  
  4.           $result=mysql_query($query);  
  5.              if($result==true){  
  6.              while($myrow=mysql_fetch_array($result)){  
  7. ?>  
  8. <tr>  
  9. <td><input name="<?php echo $myrow[id];?> type="checkbox" value="<?php echo $myrow[id]; ?></td>  
  10. <td><?php echo $myrow[user];?></td>  
  11. <td><?php echo $myrow[popedom];?></td>  
  12. <td><?php echo $myrow[operation];?></td>  
  13. </tr>  
  14. <?php }} ?>  
  15.  
  16. <tr>  
  17. <input type="submit" name="submit" value="激活">  
  18. <input type="submit" name="submit2" value="冻结">  
  19. </tr>  
  20. </form> 

表单处理页,代码如下:

  1. <?php session_start(); include("conn/conn.php")  
  2. if($submit=="激活"){  
  3.     while(list($name,$value)=each($_POST)){  
  4.         $result=mysql_query("update tb_user set operation='激活' where id='".$name."'"); 
  5.     if($result==true){  
  6.         echo "<script> alert('激活成功');window.location.href='index.php';</script>";}}  
  7.  
  8. if($submit2=="冻结"){  
  9.     while(list($name,$value)=each($_POST)){  
  10.         $result=mysql_query("update tb_user set operation='冻结' where id='".$name."'"); 
  11.     if($result==true){  
  12.         echo "<script> alert('冻结成功');window.location.href='index.php';</script>";}}  
  13. }  
  14. ?> 

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

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

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

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

for($i=0;$i<count($sp_name);$i++){ 两个实现结果是一样的.

Tags: php批量添加 php更新数据

分享到: