<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<!-- 修改思路:提交到当前页面,根据传过来的数据查:-->
<body>
<br />
<form action="1028afternoonmain.php" method="post">
<div>姓名:
<input type="text" name="xm" />
<input type="submit" value="查询" />
</div>
</form>
<br />
<form action="1101morningpiliangshanchu.php" method="post">
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td><input type="checkbox" onclick="quanxuan(this)" />代号</td>
<td>姓名</td>
<td>性别</td>
<td>民族</td>
<td>生日</td>
<td>操作</td> </tr> <?php
//查询规律:在用户不输入的情况下,查询的是全部数据
//先判断有没有提交值 /*简化前
$xm="";
if(!empty($_POST["xm"]))//empty();判断是否为空.加一个条件判断,防止报错
{
$xm = $_POST["xm"];
} //简化前
$tj = "";
if($xm == "")//如果没有值,查所有的,不加条件,或者给一个恒成立的条件。如果有值,按条件查找
{
$tj = " 1=1 ";//不要忘记两边加空格(方便拼接sql语句)
}
else
{
$tj = " name like '%{$xm}%' ";//不要忘记两边加空格,模糊查询用like
}
//简化后
$tj = " 1=1 ";//默认恒成立
if($xm != "")
{
$tj = " name like '%{$xm}%' ";
}
*/
//简化后 写法一:
$xxm = "";
$tj = " 1=1 ";
if(!empty($_POST["xm"]) && $_POST["xm"] !="")//判断xm是否为空
{
$xxm = $_POST["xm"];
$tj = " name like '%{$_POST['xm']}%' "; //变量里面可以加单引号
}
/*简化后 写法二:
$tj = " 1=1 ";
if(!empty($_POST["xm"]))//判断xm是否为空
{
if($_POST["xm"] !="")//判断xm是否为空字符串
{
$tj = " name like '%{$xm}%' ";
}
}*/ //造连接对象
$db = new MySQLi("localhost","root","数据库密码","1016");
//写sql语句
$sql = "select * from info where ".$tj;//(拼接sql语句,where后面的空格是为了防止拼接语句错误.单独拿出来是因为如果写成一句的话,用户如果什么都不输入,查询的值则为空,这与查询规律冲突即用户什么都不输入的情况下,查询全部数据)
//执行sql语句
$result = $db->query($sql);
//读数据,返回一个二维数组
$attr = $result->fetch_all();
//foreach遍历数组,
foreach($attr as $v)//$attr as $v取attr里面的每一个小数组
{
echo"<tr>"; $sex = $v[2]?"男":"女";//数组v $v 取索引二,用三元运算符判断,前面是一个布尔型数据,true显示男,false显示女 0 false,1 true //根据民族代号查询民族名称 也可以使用join查询,但是一般不推荐使用,因为查询的数据量太大了 /*$sname = "select name from nation where code = '{$v[3]}'";
$rname = $db->query($sname);
$aname = $rname->fetch_row();*/ $name = nationname($v[3]);
//使关键字高亮 <mark></mark>
/*简化后的在上面
$xxm = "";//先把xxm变量定义在外层
if(!empty($_POST["xm"]))//然后判断是否有提交值
{
$xxm = $_POST["xm"];//有传值的话就取xm
}
*/
//替换关键字
$newname = str_replace($xxm,"<mark>{$xxm}</mark>",$v[1]);//查找替换,第一个参数:关键字,根据什么去找;第二个关键字,替换后的内容;第三个参数:要替换哪个字符串,即要替换的区域
//复选的话用数组提交 sc[] ,到处理页面,遍历数组就可以了
echo"<td><input type='checkbox' value='{$v[0]}' name='sc[]' class='qx' />{$v[0]}</td><td>{$newname}</td><td>{$sex}</td><td>{$name}</td><td>{$v[4]}</td><td><a href='1028afternoonshanchu.php?c={$v[0]}'>删除</a> <a href='1030morningxiugai.php?c={$v[0]}'>修改</a></td>"; //跳转到另外一个页面并且带一个值过去的方式是get方式,因此我们要模拟一个get传值方式 ?c={$v[0]} //要想加入删除的功能要先让它可以点击,一种方法是按钮,另一种方法是<a>标签。样式可以随便做,比如在外面加上一个漂亮的DIV,在里面加上<a>标签。 /*输出的两种方法
foreach($v as $v1)
{
echo "<td>{$v1}</td>";
}*/ echo"</tr>";
} //给一个民族代号,返回民族名称
function NationName($code)
{
//造连接对象
$db = new MySQLi("localhost","root","数据库密码","1016");
//写SQL语句
$sql = "select name from nation where code='{$code}'";
//执行SQL语句
$result = $db->query($sql); $attr = $result->fetch_row(); return $attr[0];
} ?> </table>
<a href="1028afternoonadd.php"><input type="button" value="添加数据" /></a>
<input type="submit" value="批量删除" onclick="return confirm('确定删除吗?')" />
</form>
<!--批量删除思路:把复选框和批量删除按钮看作是一个表单--> <script> function quanxuan(a) {
//找到下面所有的复选框
var ck = document.getElementsByClassName("qx");
//不是document点出来的就没有提示,如果怕出错可以在这里随便定义一个变量然后点出来然后复制过来
//遍历所有复选框,设置选中状态
for(var i=0;i<ck.length;i++)
{
if(a.checked)
{
/*setAttribute("checked","checked")
设置属性(“名字”;“值”)*/
ck[i].setAttribute("checked","checked");
}
else
{
/*removeAttribute("checked","checked")
移除属性(“名字”;“值”)*/
ck[i].removeAttribute("checked","");
}
} } </script> </body>
</html>

1028afternoonmain.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head> <body>
<!--关于empty方法的问题-->
<!--不仅可以判断$_POST[]是否为空,还可以判断变量$a是否为空--> <?php
//empty(); 判断这个变量有没有定义或者定义了没有赋值或者值是空字符串、0 所以比如在查询时如果用的empty,输入0的时候就会查询全部
//$a="";
//var_dump(empty($a));
//当变量为0或者""空字符串的时候也为true,即会把0或者""当做空 // isset判断变量有没有定义过,有没有设置,设置了返回true,没有设置返回false
//$b=0;
//var_dump(isset($b));
//当变量为0或者""空字符串的时候返回true,即不会把0或者""当做空 //is_null 判断是否为空,未定义
$c=null;
var_dump(is_null($c));
//不能判断没有定义的变量
//当变量未定义或者定义了但未赋值,即为null的时候返回true,当变量为0或者""空字符串的时候返回false,即不会把0或者""当做空 ?> </body>
</html>

1101morningceshi.php

<?php
$attr = array();//定义一个空数组
if(!empty($_POST["sc"]))
{
$attr = $_POST["sc"]; } $db = new MySQLi("localhost","root","数据库密码","1016");
//上面这句话放外面是为了防止循环每执行一次就造一次对象
/*优化前(每一条sql语句就执行一次)
foreach($attr as $v)
{
$sql = "delete from info where code='{$v}'";
$db->query($sql);
}
*/ //优化后:删除一组数据用in 拆分字符串返回数组explode 数组拼接字符串implode
//implode();第一个参数:分隔符 第二个参数:数组
$str = implode("','",$attr); $sql = "delete from info where code in('{$str}')"; $db->query($sql); header:("location:1028afternoonmain.php"); ?>

1104piliangshanchu.php

PHP数据访问批量删除(10261101)的更多相关文章

  1. MYSQLi数据访问批量删除

    <link href="../bootstrap.min.css" rel="stylesheet" type="text/css" ...

  2. PHP批量写入数据、批量删除数据

    批量插入可以参考$sql = "insert into data (id,ip,data)  values ";for($i=0;$i<100;$i++){$sqls[]=& ...

  3. curl post 请求 es 数据 REST 批量删除

    curl  -d  "keyword=牛" http://api.com/path/index curl模拟http发送get或post接口测试 - 一生守候 - 博客园 http ...

  4. Oracle批量删除表格数据

    在开发阶段往Oracle数据库中多个表格中导入了许多测试数据,倘若一张张表执行"truncate table tablename"语句显得十分繁琐.在PL/SQL中可以用代码进行批 ...

  5. Mybatis 实现批量插入和批量删除源码实例

    Mybatis 实现批量插入数据和批量删除数据 学习内容: 准备工作 1.数据库新建表 2.新建 Maven 项目和设置编译版本及添加依赖 3.新建 db.properties 4.新建 mybati ...

  6. php数据访问(批量删除)

    批量删除: 首先给每一行加上复选框,也就是在自增长列内加入checkbox.因为这里可以多选,也可以单选,所以在传值的时候需要传一个数组来进行处理,所以复选框name的值设定一个数组.传值都是传的va ...

  7. EntityFramework:支持同一事务提交的批量删除数据实现思路

    一切从一段代码说起... 下面一段代码是最近我在对一EF项目进行重构时发现的. protected override void DoRemove(T entity) { this.dbContext. ...

  8. Hibernate 数据的批量插入、更新和删除

    4.2  Hibernate的批量处理 Hibernate完全以面向对象的方式来操作数据库,当程序里以面向对象的方式操作持久化对象时,将被自动转换为对数据库的操作.例如调用Session的delete ...

  9. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除)

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除) ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   ...

随机推荐

  1. cygwin 运行窗口程序

    首先, 默认安装的cygwin是不能运行窗口程序的 比如,一段python窗口程序: import * from tkinter Tk() mainloop() 如果使用命令行: python3 py ...

  2. win10下VS2015局域网调试配置

    一.前言 换win10页挺久了一直没有使用 IISExpress 的局域网功能,今天一使用才发现 win10 比起 win7 下配置多了许多坑. 二.配置步骤 首先我们先来拿到本机 ip 地址 打开命 ...

  3. Jasmine 的自定义部分

    自定义toEqual toEqual mathers 支持用户自定义比较方法,使用的是jasmine.addCustomEquallyTester(myCustomEqualltyFunction)方 ...

  4. 如何一步一步用DDD设计一个电商网站(十四)—— 回顾与总结

    本系列所有文章 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念 如何一步一步用DDD设计一个电商网站(二)—— 项目架构 如何一步一步用DDD设计一个电商网站(三)—— 初涉核心域 如 ...

  5. 匹配PC和移动端

    方法1: var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; ret ...

  6. 简述public private protected internal修饰符的访问权限

    public 关键字是类型和类型成员的访问修饰符.公共访问是允许的最高访问级别.对访问公共成员没有限制. protected 关键字是一个成员访问修饰符.受保护成员在它的类中可访问并且可由派生类访问. ...

  7. (一) 从Angular1到Angular2的杂谈

    使用了angular1一年下来,完成了若干项目,承蒙此框架的强大带来了不算差的项目编写体验,但1.*版本的angular,确实是有厉害的地方也有其尴尬的地方,包括较多数据的渲染的性能问题,还有就是可能 ...

  8. Vim进阶命令

    1. 查找    /xxx(?xxx)       表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示                    向上查找.其中xxx可以是正规表达式, ...

  9. devexpress实现模仿Win8桌面metro风格

    1.devexpress强大的控件库,可很容易的实现Win8桌面metro风格.使用的TileControl控件,拖动与Win效果相同.所有图片均来自网络资源.每个块也可实现如图所示的四种大小,如何实 ...

  10. HTML5 DragEvent

    DragEvent是一个表示drag和drop交互的DOM event接口.用户通过将指针设备(如:鼠标)放在目标的表面开始拖动,然后拖动指针到一个新的位置(如其他DOM元素).应用程序自动的解析拖放 ...