查询(关键字查询,多条件查询)

一、关键字查询

(1)查询一张表,要把表先列出来,显示出查询的表

<table width="100%" cellpadding="0" cellspacing="0" border="1">    //正常的查看表,前几天刚学习的内容
  <tr>
       <td>代号</td>
       <td>名称</td>
       <td>系列</td>
       <td>时间</td>
       <td>油耗</td>
       <td>功率</td>
  </tr>

  <?php  //查看数据库中的内容
     $db = new MySQLi("localhost","root","123","test3");   
        $sql = " select * from car ";
        $result = $db->query($sql);
				
        while($attr = $result->fetch_row())
        {
      $str = str_replace($name,"<span style='color:red'>{$name}</span>",$attr[1]);
          echo "<tr><td>{$attr[0]}</td><td>{$attr[1]}</td><td>{$attr[2]}</td><td>{$attr[3]}</td><td>{$attr[4]}</td><td>{$attr[5]}</td></tr>";	
        }
   ?>
</table>

(2)表显示出来后,查询要有输入框和查询按钮

<form action="test12_main.php" method="post">  //查询关键词刷新的页面应该是本页面,也应该是在本页面中显示查询后的内容,指向的页面就是本页面
     根据名称查询:<input type="text" name="name"  />
     <input type="submit" value="查询"  />
</form>

(3)重要的怎么建立关键字查询

利用模糊查询来查看,模糊查询的关键字就是like(还有就是输入的关键字要特殊显示可以在遍历表中进行)

<?php
    $db = new MySQLi("localhost","root","123","test3");
			
    $tiaojian = " 1=1 ";   //条件横成立,2=2也可以,只要恒成立就可以
    $name = "";    //外面的也可以使用
    if(!empty($_POST["name"]))   //判断语句:name是非空的就进入下面
    {
	$name = $_POST["name"];
	$tiaojian = " name like '%{$name}%' ";   //用户自己输入的查询条件
    }
			
?>
 while($attr = $result->fetch_row())
 {
  $str = str_replace($name,"<span style='color:red'>{$name}</span>",$attr[1]);   //关键字处理,用到的函数是替换str_replace
   echo "<tr><td>{$attr[0]}</td><td>{$str}</td><td>{$attr[2]}</td><td>{$attr[3]}</td><td>{$attr[4]}</td><td>{$attr[5]}</td></tr>";	
 }   //相应的在输出的所以好是1的也要改成替换赋值的$str

(4)还有就是输入框输入关键字查询后,输入框中的字应该还是显示的

这样就在文本框中的value值前嵌入php语言,输出$name,这个其实就和设置默认值的方法一样

根据名称查询:<input type="text" name="name" value="<?php echo $name ?>" />

 

二、多条件查询

除了php语句之外,其他的查看表、添加文本框都是和关键字查询一样的写法,就不重复的书写了。

$db = new MySQLi("localhost","root","123","test3");

$tiaojian = " 1=1 ";   //条件一恒成立:恒成立也可以是2=2,只要是恒成立就可以
$tj = " 1=1 ";   //条件二恒成立
$name = "";

if(!empty($_POST["name"]))  //第一个条件的判断(用到了模糊查询)
{
	$name = $_POST["name"];
	$tiaojian = " name like '%{$name}%' ";   //进入判断后就要执行自己的查询条件,就不是恒成立的条件了
}

if(!empty($_POST["brand"]))   //第二个条件判断(正常查询)
{
	$brand = $_POST["brand"];
	$tj = " brand = '{$brand}' ";  //同第一个条件解释
}

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

 

 

  

posted @ 2016-12-22 11:43  悦~  阅读(1549)  评论(0编辑  收藏  举报