php批量添加数据与批量更新数据的实现方法

yipeiwu_com5年前PHP代码库

本文实例讲述了php批量添加数据与批量更新数据的实现方法。分享给大家供大家参考。具体分析如下:

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

批量数据录入

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

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

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

复制代码 代码如下:
<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>
 
<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>
 
<input type="submit" name="submit" value="提交">
<input type="reset" name="reset" value="重置">
</form>

数据库连接页,代码如下:
复制代码 代码如下:
<?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());
?>

表单处理页,代码如下:
复制代码 代码如下:
<?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"提交失败";}
}
?>

批量更新数据

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

复制代码 代码如下:
<?php session_start(); include("conn/conn.php");?>
<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 }} ?>
 
<tr>
<input type="submit" name="submit" value="激活">
<input type="submit" name="submit2" value="冻结">
</tr>
</form>

表单处理页,代码如下:
复制代码 代码如下:
<?php session_start(); include("conn/conn.php")
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>";}}
 
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>";}}
}
?>

总结:心细的朋友会发现两个例子都有几个共同点,一个是表单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程序设计有所帮助。

相关文章

解析Ubuntu下crontab命令的用法

cron是一个Linux下的后台进程,用来定期的执行一些任务。因为我用的是Ubuntu,所以这篇文章中的所有命令也只能保证在Ubuntu下有效,但其他系统应该也差不多。想要让cron执行...

PHP中curl_setopt函数用法实例分析

本文实例讲述了PHP中curl_setopt函数用法。分享给大家供大家参考。具体分析如下: curl_setopt函数是php中一个重要的函数,它可以模仿用户的一些行为,如模仿用户登录,...

ThinkPHP采用模块和操作分析

任何一个WEB行为都可以认为是一个模块的某个操作,系统会根据当前的URL来分析要执行的模块和操作。这个分析工作由URL调度器来实现,官方内置了Dispatcher类来完成该调度。 在Di...

PHP的范围解析操作符(::)的含义分析说明

今天看到几个有关PHP的符号。一个是@,这个加在一个变量的前面,是为了抑制PHP解释器报错,也就是说即使出了错也不会显示出来。 还有一个更重要的符号PHP的范围解析操作符(::) 在没有...

PHP中使用Imagick实现各种图片效果实例

imagick是一个功能强大的图像处理库。  说是翻译 其实就是简要介绍imagick 的主要功能的或者说是我觉得比较实用的功能函数的介绍 以及使用的例子。  因...