php数据访问之查询 、删除 ,增添

1.查询

把昨天的作业(查询一张数据表,以表格的形式显示)作为一个例子

思路就是连接数据库,然后读取SQL语句并且根据条件遍历输出

<body>


<table border="1px" cellpadding="0px" cellspacing="0px" width="100%">    //外层表结构

<tr align="center">                                                            //自己写好表头(字段名)
<td>学号</td>
<td>姓名</td>
<td>性别</td>
<td>出生日期</td>
</tr>

<?php
$db = new MySQLi("localhost","root","","test");          // 连接数据库
$db->query("set names UTF8");           //设置字符编码

$sql = "select * from teacher";            //读取SQL语句
$result = $db->query($sql);
while($arr = $result->fetch_row())          //循环,抓取每行的数据,直到没有数据
{
echo "<tr align='center'> <td>{$arr[0]}</td>          //输出数据表中的每个字段内容
<td>{$arr[1]}</td>
<td>{$arr[2]}</td>
<td>{$arr[3]}</td></tr>";
}
?>
</table>

</body>

php数据访问之查询 、删除 ,增添

 2.数据删除操作

<body>
<h1>学生表查询</h1>
<table cellpadding="0px" cellspacing="0px" border="1px" align="center" width="100%">
<tr>
<td>学号</td>
<td>姓名</td>
<td>性别</td>
<td>生日</td>
<td>班级</td>
<td>操作</td>

</tr>
<?php
$db=new MySQLi("localhost","root","","test");                           
$sql="select * from student";
$result=$db->query($sql);
$attr=$result->fetch_all();
foreach($attr as $v)
{ echo "<tr>
<td>{$v[0]}</td>
<td>{$v[1]}</td>
<td>{$v[2]}</td>
<td>{$v[3]}</td>
<td>{$v[4]}</td>                                                                                                               //和查询一样,这里多出来一个定义字段,作为删除功能键,定义为<a>超链接标签

<td><a href='dele.php?Sno={$v[0]}' onclick="return confirm('你确定删除吗')">删除</a></td> //同时给删除键一个点击事件,这样会先执行点击事件,后完成提交跳转,添加了一个确认事件,为了防止不经过用户确认而造成的误删现象。

</tr>";}                                             //在提交删除操作时,同时提交了一个类get操作(地址栏显示)的数据主键值,使得提交时能辨识出需要删除的具体是哪个数据

 ?>

</table><br />

</body>

效果如下图

php数据访问之查询 、删除 ,增添

当点击删除时

php数据访问之查询 、删除 ,增添

接下来就是写后台删除的PHP页面

<?php
$r1=$_GET["Sno"];                                         //通过get方式获取到了删除页面传来的主键对应的值
$db=new MySQLi("localhost","root","","test");     //链接数据库
$sql="delete from student where Sno={$r1}";    //读取sql语句
if($db->query($sql)){                                      
header("location:check.php");                            //删除成功后跳转至原来的界面,1. header方法,此方法问题会出现在,如果不是跳转同级文件下的时候出错
echo "<script>window.location.href='check.php';</script>" //2.JS跳转方式

echo"<script>window.open('check.php','_self',)</script>"   //3.JS跳转方式    3种方式都能成功跳转。
}

 ?>

3.添加数据(和前面的注册基本一致的做法)

第一步:增加一个添加的提交或超链接按钮

<a href="add.php"><input  type="submit" name="add" value="添加学生"/></a>

php数据访问之查询 、删除 ,增添

第二步:写add添加的页面

<body>
<h1 align="center">学生信息添加</h1>
<div style=" background-color:#0CC" align="center">
<form action="tianjia.php" method="post">
<div>学号:<input type="text" name="Sno" /></div><br />

<div>姓名:<input type="text" name="Sname" /></div><br />

<div>男<input type="radio" name="Ssex" /> 女<input type="radio" name="Ssex"</div><br />

<div>生日:<input type="date" name="birthday"/></div><br />

<div>班级<input type="text" name="class" /></div><br />

<input type="submit" value="提交"/>

</form>
<div>
</body>

php数据访问之查询 、删除 ,增添

第三步:写出处理添加数据操作的php页面

<?php
$id=$_POST["Sno"];
$name=$_POST["Sname"];
$sex=$_POST["Ssex"];
$birthday=$_POST["birthday"];
$class=$_POST["class"];
$db=new MySQLi("localhost","root","","test");
$sql="insert into student values('{$id}','{$name}','{$sex}','{$birthday}','{$class}')";
if($db->query($sql)){
echo "学生{$name}信息添加成功";
//header("location:check.php");
echo"<script> window.open('check.php','_self','')</script>";
}
else{
echo "学生信息添加失败".$db_error;
}

?>

4.修改数据表

如果数据表中显示的内容和我们想要显示的结果不同,比如性别在数据表中储存的是0和1,但是我们想要显示的是男和女

还有就是连有外键的数据表,显示的内容中只是一个外键的字段名,我们就要进行修改

例如下面

<body>
<h1>显示info信息</h1>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代号</td>
<td>姓名</td>
<td>性别</td>
<td>民族</td>
<td>生日</td>
<td>操作</td>
</tr>

<?php
$db = new MySQLi("localhost","root","123","mydb");
$sql = "select * from info";
$result = $db->query($sql);
$arr = $result->fetch_all();
foreach($arr as $v)
{
//修改性别
$sex = $v[2]?"男":"女";

//修改民族
$sql1 = "select name from nation where code='{$v[3]}'";     //读取关联表的数据 
$r1 = $db->query($sql1);                                                  //存入变量集中
$a1 = $r1->fetch_row();                  //用数组储存抓取的数据

echo "<tr>
<td>{$v[0]}</td>
<td>{$v[1]}</td>
<td>{$sex}</td>       //将修改后的直接存在变量里输出显示
<td>{$a1[0]}</td>   //直接替换成关联表中的数据
<td>{$v[4]}</td>
<td><a href='del.php?code={$v[0]}' onclick="return confirm('确认删除么?')">删除</a></td>
</tr>";
}
?>

</table>
</body>