18.2 管理MySQL数据库中的数据

18.2 管理mysql数据库中的数据

在开发网站的后台管理系统中,对数据库的操作不仅局限于查询指令,对数据的添加、修改和删除等操作指令也是必不可少的。本节重点介绍如何在PHP页面中对数据库进行增、删、改的操作。

18.2.1 添加数据

视频讲解:光盘TMlx1812 添加数据.mp4

【例18.8】通过insert语句和mysqli_query()函数向图书信息表中添加一条记录。(实例位置:光盘TM sl188)

这个实例主要包括两个文件:第一个文件是index.php文件,设计添加数据的表单,效果如图18.5所示。

图18.5 向表中添加数据

第二个文件是index_ok.php文件,获取表单中提交的数据,并且连接数据库,编辑SQL语句将表单中提交的数据添加到指定的数据表中,关键的程序代码如下:

<?php header("content-type: text/html; charset=utf-8"); //设置文件编码格式 include_once("conn/conn.php"); //包含数据库连接文件 if(! ($_POST['bookname'] and $_POST['price'] and $_POST['f_time'] and $_POST['type'])){ echo"输入不允许为空。单击<a href='javascript:onclick=history.go(-1)'>这里</a> 返回"; }else{ $sqlstr1 = "insert into tb_demo02 values('', '".$_POST['bookname']."', '".$_POST['price']."', '".$_POST['f_time']."', '".$_POST['type']."')"; //定义添加语句 $result=mysqli_query($conn, $sqlstr1); //执行添加语句 if($result){ echo "添加成功,点击<a href='select.php'>这里</a>查看"; }else{ echo "<script>alert(’添加失败’); history.go(-1); </script>"; } } ?>

添加成功后,运行结果如图18.6所示。

图18.6 添加成功页面

18.2.2 编辑数据

视频讲解:光盘TMlx1813 编辑数据.mp4

有时插入数据后,才发现录入的是错误信息或一段时间以后数据需要更新,这时就要对数据进行编辑。数据更新使用update语句,依然通过mysqli_query()函数来执行该语句。

【例18.9】本例通过update语句和mysqli_query()函数实现对数据的更新操作。(实例位置:光盘TM sl189)

具体步骤如下:

(1)创建conn文件夹,编写conn.php文件,完成与数据库的连接,并且设置页面的编码格式为utf8。

(2)创建index.php文件,循环输出数据库中的数据,并且为指定的记录设置修改的超链接,链接到update.php文件,链接中传递的参数包括action和数据的ID。关键代码如下:

<?php $sqlstr="select*from tb_demo02 order by id"; //定义查询语句 $result=mysqli_query($conn, $sqlstr); //执行查询语句 while($rows=mysqli_fetch_row($result)){ //循环输出结果集 echo "<tr>"; for($i=0; $i<count($rows); $i++){ //循环输出字段值 echo"<td height='25'align='center'class='m_td'>".$rows[$i]."</td>"; } echo "<td class='m_td'><a href=update.php? action=update&id=".$rows[0]. ">修改</a>/<a href='#'>删 除</a></td>"; echo "</tr>"; } ?>

(3)创建update.php文件,添加表单,根据地址栏中传递的ID值执行查询语句,将查询到的数据输出到对应的表单元素中。然后对数据进行修改,最后将修改后的数据提交到update_ok.php文件中,完成修改操作。update.php文件的关键代码如下:

<?php include_once("conn/conn.php"); //包含数据库连接文件 if($_GET['action']=="update"){ //判断地址栏参数action的值是否等于update $sqlstr="select*from tb_demo02 where id=".$_GET['id']; //定义查询语句 $result=mysqli_query($conn, $sqlstr); //执行查询语句 $rows=mysqli_fetch_row($result); //将查询结果返回为数组 ?> <form name="intFrom" method="post" action="update_ok.php"> 书名:<input type="text" name="bookname" value="<?php echo $rows[1] ?>"> 价格:<input type="text" name="price" value="<?php echo $rows[2] ?>"> 出版时间:<input type="text" name="f_time" value="<?php echo $rows[3] ?>"> 所属类别:<input type="text" name="type" value="<?php echo $rows[4] ?>"> <input type="hidden" name="action" value="update"> <input type="hidden" name="id" value="<?php echo $rows[0] ?>"> <input type="submit" name="Submit" value="修改"> <input type="reset" name="reset" value="重置"> </form>

(4)创建update_ok.php文件,获取表单中提交的数据,根据隐藏域传递的ID值,定义更新语句完成数据的更新操作,其关键代码如下:

<?php header("Content-type:text/html; charset=utf-8"); //设置文件编码格式 include_once("conn/conn.php"); //包含数据库连接文件 if($_POST['action'] == "update"){ if(! ($_POST['bookname'] and $_POST['price'] and $_POST['f_time'] and $_POST['type'])){ echo "输入不允许为空。点击<a href='Javascript:onclick=history.go(-1)'>这里</a>返回"; }else{ $sqlstr = "update tb_demo02 set bookname = '".$_POST['bookname']."', price = '".$_POST['price']."', f_time = '".$_POST['f_time']."', type = '".$_POST['type']."' where id = ".$_POST['id']; //定义更新语句 $result=mysqli_query($conn, $sqlstr); //执行更新语句 if($result){ echo "修改成功,点击<a href='index.php'>这里</a>查看"; }else{ echo "修改失败.<br>$sqlstr"; } } } ?>

运行本例,对新添加的记录进行修改,修改后的运行结果如图18.7所示。

图18.7 更新数据

18.2.3 删除数据

视频讲解:光盘TMlx1814 删除数据.mp4

删除数据库中的数据应用的是delete语句,如果在不指定删除条件的情况下,那么将删除指定数据表中的所有数据,如果定义了删除条件,那么将删除数据表中指定的记录。删除操作的执行是一件非常慎重的事情,因为一旦执行该操作,数据就没有恢复的可能。

【例18.10】继续例18.9。如果不小心输入了重复的记录,那么,就要删除多余的数据,删除数据只需利用mysqli_query()函数执行delete语句即可。(实例位置:光盘TM sl1810)

具体步骤如下:

(1)创建conn文件夹,编写conn.php文件,完成与数据库的连接,并且设置页面的编码格式为utf8。

(2)创建index.php文件,循环输出数据库中数据,并且为每一条记录创建一个删除的超链接,链接到delete.php文件,链接中传递的参数值是记录的ID。关键代码如下:

<?php include_once("conn/conn.php"); //包含数据库连接文件 $sqlstr="select*from tb_demo02 order by id"; //定义查询语句 $result=mysqli_query($conn, $sqlstr); //执行查询语句 while($rows=mysqli_fetch_row($result)){ //循环输出结果集 echo "<tr>"; for($i=0; $i<count($rows); $i++){ //循环输出字段值 echo "<td height='25' align='center' class='m_td'>".$rows[$i]."</td>"; } echo "<td class='m_td'><a href='#'>修改</a>/<a href=delete.php? action=del&id=".$rows[0]." onclick = 'return del(); '>删除</a></td>"; echo "</tr>"; } ?>

(3)创建delete.php文件,根据超链接中传递的参数值,定义delete语句,完成数据的删除操作,其关键代码如下:

<?php header("Content-type: text/html; charset=utf-8"); //设置文件编码格式 include_once("conn/conn.php"); //连接数据库 if($_GET['action']=="del"){ //判断是否执行删除 $sqlstr1="delete from tb_demo02 where id=".$_GET['id']; //定义删除语句 $result=mysqli_query($conn, $sqlstr1); //执行删除操作 if($result){ echo "<script>alert(’删除成功’); location='index.php'; </script>"; }else{ echo "删除失败"; } } ?>

运行本例,当单击重复记录的“删除”超链接时会弹出提示对话框,单击“确定”按钮后提示删除成功,运行结果如图18.8所示。

图18.8 删除数据成功

18.2.4 批量数据操作

视频讲解:光盘TMlx1815 批量数据操作.mp4

以上操作都是对单条数据进行的,但是很多时候需要对很多条记录进行操作,如修改表中所有记录的字段值、删除不需要的记录等。如果一条一条地操作很花费时间,下面给出一个批量删除的实例,希望读者能够举一反三,自己动手实现批量添加、修改的功能模块。

【例18.11】在本例中,开发一个可以执行批量删除数据的程序。(实例位置:光盘TM sl1811)

具体步骤如下:

(1)创建conn文件夹,编写conn.php文件,完成与数据库的连接。

(2)创建index.php文件,添加表单,设置复选框,将数据的ID设置为复选框的值,设置隐藏域传递执行删除操作的参数,设置提交按钮,通过onclick事件调用del方法执行删除操作。

(3)创建deletes.php文件,获取表单中提交的数据。首先,判断提交的数据是否为空,如果不为空,则通过for语句循环输出复选框提交的值,然后将for循环读取的数据作为delete语句的条件,最后通过mysqli_query()函数执行删除语句,其关键代码如下:

<?php header("Content-type: text/html; charset=utf-8"); //设置文件编码格式 include_once("conn/conn.php"); //连接数据库 if($_POST['action']=="delall"){ //判断是否执行删除操作 if(count($_POST['chk'])==0){ //判断提交的删除记录是否为空 echo "<script>alert(’请选择记录’); history.go(-1); </script>"; }else{ for($i = 0; $i < count($_POST['chk']); $i++){ //for语句循环读取复选框提交的值, $sqlstr = "delete from tb_demo02 where id = ".$_POST['chk'][$i]; //循环执行删除操作 mysqli_query($conn, $sqlstr); //执行删除操作 } echo "<script>alert(’删除成功’); location='index. php'; </script>"; } } ?>

运行本例,看到每一条数据前都有一个复选框,如图18.9所示。选中要删除数据对应的复选框,然后单击“删除选择”按钮,会弹出提示对话框,单击“确定”按钮后提示删除成功,运行结果如图18.10所示。

图18.9 显示数据库中的数据

图18.10 批量删除成功

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

18.2 管理MySQL数据库中的数据