php sql 条件拼组_php查询及多条件查询

单条件查询:

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

无标题文档
编号姓名电话分组

$db = new mysqli("localhost","root","12345678","heiheihei");

$sql = "select * from contacts";

$r = $db->query($sql);

//传值

while ($attr = $r->fetch_row())

{

echo "

{$attr[0]}{$attr[1]}{$attr[2]}{$attr[3]}";

}

?>

上图:

啥都没改的一张表

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

输入名字:

如图:

3.建立关键字查询:

//实现两个逻辑

//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,"{$name}",$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 "

{$attr[0]}{$str}{$attr[2]}{$nation}

?>

图:

多条件查询:

前面照旧;

出了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}";

效果图:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值