免费的QQ技术网,残梦资源网,QQ教程网

网站首页 编程案例 PHP实例 正文

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

2018-05-29 PHP实例 1178 ℃ 0 评论

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

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

直接案例分析:

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

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

关键的问题在于:

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

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

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

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

Tags:PHP例子PHP案例

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

网站分类
标签列表
最近发表