批量添加数据和批量更新数据在可以为网站管理员节省不少时间,现在我们来学习一下用phpphp批量添加数据与批量更新数据的实现方法。
php如果要批量保存数据我们只要使用sql的insert into语句就可能实现数据批量保存了,如果是更新数据使用update set就可以完成更新了,操作方法都非常的简单,下面整理两个例子.
批量数据录入
设计方法:同时提交多条表单记录,为每一条记录设置相同的文本域名称,然后在表单处理页中,通过for循环来读取提取表单提交的数据,最后以数据的形式将数据逐条添加到数据库中.
其中,应用一个count()函数来获取数组中元素的个数.int count(mixed var);
立即学习“PHP免费学习笔记(深入)”;
表单提交页面,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | < 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 >
|
登录后复制
数据库连接页,代码如下:
1 2 3 4 5 6 7 8 9 | <?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());
?>
|
登录后复制
表单处理页,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?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()函数用于一次性为多个变量赋值,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?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>
|
登录后复制
表单处理页,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?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
本文链接:
收藏随意^^请保留教程地址.