php查询,多条件查询
单条件查询:
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查询,多条件查询的更多相关文章
- [转]NHibernate之旅(4):探索查询之条件查询(Criteria Query)
本节内容 NHibernate中的查询方法 条件查询(Criteria Query) 1.创建ICriteria实例 2.结果集限制 3.结果集排序 4.一些说明 根据示例查询(Query By Ex ...
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- MySQL数据库6 -查询基础,简单查询,条件查询,对查询结果排序
一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...
- dhtmlxGrid分页查询,条件查询实例
使用jquery的ajax get将页面条件请求到后台,取得数据库数据,分页查询,返回前台grid中. 引入所需文件: <script>window.dhx_globalImgPath = ...
- MySQL数据库—查询基础,简单查询,条件查询,对查询结果排序
一.SELECT语句 SELECT COL1,COL2,....COLn FROM TABLE1,TABLE2,....TABLEn [WHERE CONDITIONS] -- 查询条件 [GROUP ...
- Mybatis框架模糊查询+多条件查询
一.ISmbmsUserDao层 //根据姓名模糊查询 public List<Smbms> getUser(); //多条件查询 public List<Smbms> get ...
- 软件测试最常用的 SQL 命令 | 掌握基本查询、条件查询、聚合查询
1.DML核心CRUD增删改查 缩写全称和对应 SQL: * DML 数据操纵语言:Data Manipulation Language * Create 增加:insert * Retrieve 查 ...
- MySQL——基础查询与条件查询
基础查询 /* 语法: select 查询列表 from 表名; 类似于:System.out.println(打印东西); 1.查询列表可以是:表中的字段.常量值.表达式.函数 2.查询的结果是一个 ...
- 高级查询子条件查询filter
Filter Context 在查询过程中,只判断该文档是否满足条件,只有Yes或者No { "query":{ "bool":{ //布尔关键词 " ...
- .netcore mongodb 分页+模糊查询+多条件查询
.netcore MongoDB.Driver 版本才2.8 与aspnet差距太大,网上找很多资料没有现成的代码. public override async Task<PagerList&l ...
随机推荐
- Collections笔记
Colletion是集合接口 Collections是集合工具类,是一个类哈! public class CollectionsTest { public static void main(Strin ...
- CentOS根分区占满
我中奖了!!! 查看硬盘的使用情况(bjchenxu)df -k 以K为单位显示df -h 以人性化单位显示,可以是b,k,m,g,t.. 查看各目录占用大小 du -sh * du -ms /*
- java基础面试
1. String类为什么是final的. 安全性:如果字符串是可变的,那么会引起很严重的安全问题.譬如,数据库的用户名.密码都是以字符串的形式传入来获得数据库的连接,或者在socket编程中,主机名 ...
- bzoj2599
2599: [IOI2011]Race Time Limit: 70 Sec Memory Limit: 128 MBSubmit: 2476 Solved: 733[Submit][Status ...
- vim中多行注释 和 删除多行注释
1.多行注释: a. 按下ctrl + v,进入列模式; b. 在行首选择需要注释的行; c. 按下"I",进入插入模式: d. 然后输入注释符("//&q ...
- [c#]解决方案:需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping。
问题详情 如下图所示(部分): 出现该错误,是因为应用程序中需要使用到jquery(现在的web应用程序哪个能离开jquery呢),而目前程序目录中并没有jquery文件,或者有jquery文件但是程 ...
- 选择移动web开发框架研究——有mui、frozenui以及Sencha Touch等
纯粹的总结一下移动web开发框架,移动 web开发框架有jQuery Mobile .Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery Mobile出自于jQuery家 ...
- ThinkPHP URL伪静态、路由规则、重写、生成
一.URL规则 1.默认是区分大小写的 2.如果我们不想区分大小写可以改配置文件 'URL_CASE_INSENSITIVE'=>true,//url不区分大小写 ...
- redhat+11g+rac 安装数据库软件时只有一个节点可选
在安装数据库软件时,只能检测到一个节点 650) this.width=650;" title="捕获.JPG" src="http://s3.51cto.co ...
- SuperSocket入门(一)-Telnet服务器和客户端请求处理
本文的控制台项目是根据SuperSocket官方Telnet示例代码进行调试的,官方示例代码:Telnet示例. 开始我的第一个Telnet控制台项目之旅: 创建控制台项目:打开vs程序,文件=> ...