我一定写了一个假的技术博客
当前位置: 首页>> 技术宅 >> 正文

PHP+MySQL同时增加/修改多个记录解决方案

2015年03月27日 2 条评论 ... 技术宅 /

在 PHP+MySQL 网站的开发中,有的时候会遇见比较特殊的需求,比如说需要点击一个按钮的时候将多条记录存入数据库,或者同时修改多个记录的时候,如果是几条数据的话,手动编写还是可以忍受的,但是如果是非常多的数据就麻烦了。所以可以巧妙的运用 PHP 的数组和循环同时操作多个记录。

注意,SQL 数据库中没有数组的概念。

直接案例分析:

我需要的 PHP 网站的功能是,自动从数据库中读取一串记录,然后用循环的方式把这些记录显示在输入框中,然后我根据需要修改输入框中的数据,然后点击保存按钮,这几个输入框全部需要保存到数据库中。循环代码如下:

  1. <FORM name="addForm" METHOD="POST" ACTION="admin-img.php" >   
  2. <?php  
  3. $res=mysql_query("SELECT * FROM ty_config ORDER BY id");  
  4. while ($result=mysql_fetch_array($res)) {  
  5. echo '<input type="text" class="forms" name="add[]" placeholder="图片地址" value="'.$resultc['last'].'">';  
  6. }  
  7. ?>  
  8. <input class="bottum" TYPE="submit" name="submit" value="保存">  
  9. </FORM> 

关键的问题在于:

我使用的是循环的 echo 方式展示数据库中的内容,所以表单输入框的 name 都是相同的。在实际的网页中,提交数据的时候,直接将 $_POST['add'] 的数据存入数据库是不行的,由于 MySQL 中没有数组的概念,所以需要存贮之前,使用 PHP 数组的操作进行分别逐条自动储存。

请注意,我在循环生成表单的代码中,将表单输入框的 name 值 add 后面增加了中括号,为 add[] ,这样做的话,在提交传递参数的 $_POST['add'] 将是数组的形式传递,这样一来就非常好解决了。

  1. <?php  
  2. if($_POST['submit']){   
  3. $add=$_POST['add'];  
  4. for ($i=0;$i<4;$i++){  
  5. $sql="UPDATE ty_config SET last='$add[$i]' WHERE id='$i'";  
  6. mysql_query($sql);}  
  7. echo '<script type="text/javascript">alert("保存成功")</script>';  
  8. }  
  9. ?> 

在循环存储数据之前,我先使用变量 $add 取代了传递参数 $_POST['add'] ,然后在循环中使用 $add[] 逐个取出数组中的值,更新入数据库中。这样,就可以完美解决一次性存入多个数据记录的问题了。

版权保护: 本文由 唐野 原创,转载请保留链接: http://www.yelook.com/1216.html

立即打赏
  • 支付宝打赏

  • 微信打赏

  • 如果这篇文章对您有帮助,欢迎点击上方按钮给我打赏。

    2 条吐槽

    Loading...
    1. 小虾

      嘿嘿 不错 不过alert放循环外面比较好吧
      哈哈 我最近也想做个个人博客了呢

      2015-03-29 [回复]
    2. 九零

      同时修改或插入最好做下验证,不然会出现有的不成功的

      2015-04-13 [回复]

    发布评论