php批量添加数据与批量更新数据的实现方法
本文实例讲述了php批量添加数据与批量更新数据的实现方法。分享给大家供大家参考。具体分析如下:
php如果要批量保存数据我们只要使用sql的insertinto语句就可能实现数据批量保存了,如果是更新数据使用updateset就可以完成更新了,操作方法都非常的简单,下面整理两个例子.
批量数据录入
设计方法:同时提交多条表单记录,为每一条记录设置相同的文本域名称,然后在表单处理页中,通过for循环来读取提取表单提交的数据,最后以数据的形式将数据逐条添加到数据库中.
其中,应用一个count()函数来获取数组中元素的个数.intcount(mixedvar);
表单提交页面,代码如下:
<formname="form1"method="post"action="index_ok.php"> <tr> <td>商品名称</td> <td>编号</td> <td>单价</td> <td>数量</td> <td>产地</td> <inputname="data"type="hidden"value="<?phpecho$data;?>"> </tr> <tr> <td><inputname="sp_name[]"type="text"id="sp_name"size="15"></td> <td><inputname="sp_number[]"type="text"id="sp_number"size="10"></td> <td><inputname="price[]"type="text"id="price"size="8"></td> <td><inputname="counts[]"type="text"id="counts"size="8"></td> <td><inputname="address[]"type="text"id="address"size="15"></td> </tr> <inputtype="submit"name="submit"value="提交"> <inputtype="reset"name="reset"value="重置"> </form>
数据库连接页,代码如下:
<?php $id=mysql_connect("localhost","root","password")ordie('connectionfailed'.mysql_error()); if(mysql_select_db('mydatabase',$id)) echo""; else echo('selectdbfailed:'.mysql_error()); ?>
表单处理页,代码如下:
<?phpsession_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("insertintotb_products(sp_name,sp_number,price,counts,address,data)values('$path','$path1','$path2','$path3','$path4','$data');} if($query==true){ echo"提交成功"; else echo"提交失败";} } ?>
批量更新数据
主要通过while,list(),each()函数来实理数据的批量更新,list()函数用于一次性为多个变量赋值,代码如下:
<?phpsession_start();include("conn/conn.php");?> <formname="form1"method="post"action="index_ok.php"> <?php$query="select*fromtb_users"; $result=mysql_query($query); if($result==true){ while($myrow=mysql_fetch_array($result)){ ?> <tr> <td><inputname="<?phpecho$myrow[id];?>type="checkbox"value="<?phpecho$myrow[id];?></td> <td><?phpecho$myrow[user];?></td> <td><?phpecho$myrow[popedom];?></td> <td><?phpecho$myrow[operation];?></td> </tr> <?php}}?> <tr> <inputtype="submit"name="submit"value="激活"> <inputtype="submit"name="submit2"value="冻结"> </tr> </form>
表单处理页,代码如下:
<?phpsession_start();include("conn/conn.php") if($submit=="激活"){ while(list($name,$value)=each($_POST)){ $result=mysql_query("updatetb_usersetoperation='激活'whereid='".$name."'"); if($result==true){ echo"<script>alert('激活成功');window.location.href='index.php';</script>";}} if($submit2=="冻结"){ while(list($name,$value)=each($_POST)){ $result=mysql_query("updatetb_usersetoperation='冻结'whereid='".$name."'"); if($result==true){ echo"<script>alert('冻结成功');window.location.href='index.php';</script>";}} } ?>
总结:心细的朋友会发现两个例子都有几个共同点,一个是表单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++){两个实现结果是一样的.
希望本文所述对大家的php程序设计有所帮助。