单条件查询:

1.先要有一张表,显示出表中的数据:

<!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>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="200">编号</td>
<td width="200">姓名</td>
<td width="200">电话</td>
<td width="200" >分组</td> </tr>
<?php
$db = new mysqli("localhost","root","12345678","heiheihei");
$sql = "select * from contacts";
$r = $db->query($sql);
//传值
while ($attr = $r->fetch_row())
{
echo " <tr>
<td>{$attr[0]}</td> <td>{$attr[1]}</td>
<td>{$attr[2]}</td>
<td>{$attr[3]}</td> </tr>";
}
?>
</table> </body>
</html>

上图:

啥都没改的一张表

2.再来个from表单,让用户输入,点击查询:

<form action="shouye.php" method="post">
<div>
输入名字:<input type="text" name="name"/>
<input type="submit" value="查询"/> </div> </form>

如图:

3.建立关键字查询:

 <?php
//实现两个逻辑
//1.如果没有post数据.查所有的
//2.如果有post数据.根据条件查
$db = new mysqli("localhost","root","12345678","heiheihei");
//连接数据库
$tj = " 1 = 1 ";
$name="";
//恒成立,如果没有写数据,那就让条件等于1=1,这个条件是查找所有的数据
//如果你写入数据,按照数据查
if(!empty($_POST))
{
$name = $_POST['name'];
$tj = " name like '%{$name}%'";
}
//将条件拼接到SQl语句
$sql = "select * from contacts WHERE {$tj}";
echo $sql; //查出来
$r = $db->query($sql);
//传值
if($r)
//开始判断
{
//$attr已经接收到了值,现在只需要获取他的索引就行了
while ($attr = $r->fetch_row())
{
//关键字特殊查询 $str = str_replace($name,"<mark>{$name}</mark>",$attr[1]); //查找替换如ctrl+f
//substr_replace(); 在指定位置替换
//substr(); 截取字符串 $gname = "select gname from groups WHERE gid='{$attr[3]}'";
//分组表中的gid,和我点击的
$nresult = $db->query($gname);
$gname = $nresult->fetch_row();
$nation = $gname[0];
echo " <tr>
<td>{$attr[0]}</td> <td>{$str}</td>
<td>{$attr[2]}</td>
<td>{$nation}</td> ?>

图:

 多条件查询:

前面照旧;

出了php的语句:

 <?php
//实现两个逻辑
//1.如果没有post数据.查所有的
//2.如果有post数据.根据条件查
$db = new mysqli("localhost","root","12345678","heiheihei");
//连接数据库
$tj1 = " 1 = 1 ";
$tj2 = " 1 = 1 ";//两个条件的恒等
$name="";
//恒成立,如果没有写数据,那就让条件等于1=1,这个条件是查找所有的数据
//如果你写入数据,按照数据查
if(!empty($_POST["name"])) //第一个条件的判断(用到了模糊查询)
{
$name = $_POST['name'];
$tj1 = " name like '%{$name}%'";
}
if(!empty($_POST["tel"]))
{
$tel = $_POST["tel"];
$tj2 = "tel = '$tel'";
}
//将条件拼接到SQl语句
$sql = "select * from contacts WHERE {$tj1} AND {$tj2}";

效果图:

 这样:有几个条件就做几个条件变量,第一个条件不为空就执行的第一个条件,第二个条件不为空执行的第二个条件,两个都为空就是查寻所有的数据

php查询,多条件查询的更多相关文章

  1. [转]NHibernate之旅(4):探索查询之条件查询(Criteria Query)

    本节内容 NHibernate中的查询方法 条件查询(Criteria Query) 1.创建ICriteria实例 2.结果集限制 3.结果集排序 4.一些说明 根据示例查询(Query By Ex ...

  2. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  3. MySQL数据库6 -查询基础,简单查询,条件查询,对查询结果排序

    一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...

  4. dhtmlxGrid分页查询,条件查询实例

    使用jquery的ajax get将页面条件请求到后台,取得数据库数据,分页查询,返回前台grid中. 引入所需文件: <script>window.dhx_globalImgPath = ...

  5. MySQL数据库—查询基础,简单查询,条件查询,对查询结果排序

    一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...

  6. Mybatis框架模糊查询+多条件查询

    一.ISmbmsUserDao层 //根据姓名模糊查询 public List<Smbms> getUser(); //多条件查询 public List<Smbms> get ...

  7. 软件测试最常用的 SQL 命令 | 掌握基本查询、条件查询、聚合查询

    1.DML核心CRUD增删改查 缩写全称和对应 SQL: * DML 数据操纵语言:Data Manipulation Language * Create 增加:insert * Retrieve 查 ...

  8. MySQL——基础查询与条件查询

    基础查询 /* 语法: select 查询列表 from 表名; 类似于:System.out.println(打印东西); 1.查询列表可以是:表中的字段.常量值.表达式.函数 2.查询的结果是一个 ...

  9. 高级查询子条件查询filter

    Filter Context 在查询过程中,只判断该文档是否满足条件,只有Yes或者No { "query":{ "bool":{ //布尔关键词 " ...

  10. .netcore mongodb 分页+模糊查询+多条件查询

    .netcore MongoDB.Driver 版本才2.8 与aspnet差距太大,网上找很多资料没有现成的代码. public override async Task<PagerList&l ...

随机推荐

  1. Elasticsearch基础教程

    Reference: http://blog.csdn.net/cnweike/article/details/33736429 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概 ...

  2. Round Numbers(poj 3252)

    题意:算出区间内二进制中0的个数大于等于1的个数的数字有多少个 /* 本来以为用数位DP搞,但是组合数更简单. 我们设n的二进制长度为len. ①:先考虑长度小于len的数字. 这里以数字22为例,二 ...

  3. Oracle 11g RAC使用Manual和Policy Managed方法配置(转)

    原文地址:http://czmmiao.iteye.com/blog/2128771 软件环境: 操作系统:Red Hat Enterprise Linux 5.4(Tikanga)Oracle:11 ...

  4. C++中的Traits技法

    Traits广泛应用于标准程序库.Traits classes使得"类型相关信息"在编译期可用. 认真读完下面的示例,你应该就懂了Traits技法,其实并不难. #include ...

  5. Linux笔记(五) - 用户管理命令

    (1)添加用户:useradd [选项] 用户 -u UID:手工指定用户的UID号-d 家目录:手工指定用户的家目录-c 用户说明:手工指定用户说明,有空格需加双引号-g 初始组:手工指定初始组-G ...

  6. TCP协议滑动窗口(一)——控制数据传输速率

    窗口大小:TCP头中一个16位的域,表示当前可用接受缓冲区大小.在每个TCP对等段连接初始化时,告诉对方自己的窗口大小(不一定是满额,假如满额65201字节,可能暂时通告5840字节).若客户端接受数 ...

  7. puppet来管理文件和软件包

    puppet来管理文件和软件包 1 exec的使用,可以运行shell命令 为配置文件添加配置,指示写了关键部分,其他配置省略没写 代码示例如下: [root@pup manifests]# cat ...

  8. 自动化测试框架中关于selenium api的二次封装

    不多说,直接看代码如下: #coding:utf-8 from selenium import webdriver from selenium.webdriver.common.action_chai ...

  9. BZOJ2002(分块)

    Bounce 弹飞绵羊 Time Limit:10000MS     Memory Limit:265216KB     64bit IO Format:%lld & %llu Submit  ...

  10. js之Math对象

    ; var num1 = Math.floor(num); // 向下取整 var num2 = Math.ceil(num); // 向上取整 document.write(num2+'-<b ...