php查询及多条件查询

2018-09-07 17:33

阅读:315

  单条件查询:

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

   <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN 无标题文档</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};

  效果图:

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


评论


亲,登录后才可以留言!