10月30日下午 PHP精确查询(模糊查询、模糊+关键字共同查询)
1.一个条件的模糊查询
<body> <br /> <form action="main.php" method="post"><!--点击查询时会将用户输入的值传递到本页面--> <div>姓名: <input type="text" name="xm" /><!--输入查询的关键字--> <input type="submit" value="查询" /><!--提交按钮,需要一个表单--> </div> </form> <br /> <table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>代号</td> <td>姓名</td> <td>性别</td> <td>民族</td> <td>生日</td> <td>操作</td> </tr>
<?php //先判断有没有提交值 $xm=""; if(!empty($_POST["xm"]))//没有值就说明是第一次加载这个页面,没有输入查询条件,点击查询就是查询所有的。有值就按照输入的值查询。 { $xm = $_POST["xm"];//把输入的值取出来 } $tj = "";//定义一个变量条件(tj) if($xm == "")//如果值为空 { $tj = " 1=1 ";//如果值为空,就给条件赋一个恒成立的1=1.根据这个条件能查询出所有的数据。 } else { $tj = " name like '%{$xm}%' ";//如果值不为空,就给$tj赋上输入输入的值。 } 上面带行号的代码可以简化为下面的带行号的 $xm=""; if(!empty($_POST["xm"]))//没有值就说明是第一次加载这个页面,没有输入查询条件,点击查询就是查询所有的。有值就按照输入的值查询。 { $xm = $_POST["xm"];//把输入的值取出来 } $tj = " 1=1 ";//让$tj值默认1=1, if($xm != "") { $tj = " name like '%{$xm}%' ";//如果值不为空,就给$tj赋上输入输入的值。 } 或者更加简化 $tj = " 1=1 "; if(!empty($_POST["xm"]) && $_POST["xm"]!="")//没有值就说明是第一次加载这个页面,没有输入查询条件,点击查询就是查询所有的。有值就按照输入的值查询。 { $tj = " name like '%{$_POST['xm']}%' "; } $db = new MySQLi("localhost","root","666","text1"); $sql = "select * from info where ".$tj;//把条件拼在查询语句后面,并加上where。 $result = $db->query($sql); $attr = $result->fetch_all(); foreach($attr as $v) { echo"<tr>"; $sex = $v[2]?"男":"女"; $name = NationName($v[3]); echo"<td>{$v[0]}</td><td>{$v[1]}</td><td>{$sex}</td><td>{$name}</td><td>{$v[4]}</td><td><a href='shanchu.php?c={$v[0]}' onclick=\"return confirm('确定删除吗?')\">删除</a><a href='xiugai.php?c={$v[0]}'>修改</a></td"; /*foreach($v as $v1) { echo "<td>{$v1}</td>"; }*/ echo"</tr>"; } function NationName($code) { $db = new MySQLi("localhost","root","666","text1"); $sql = "select name from nation where code = '{$code}'"; $result = $db->query($sql); $attr = $result->fetch_row(); return $attr[0]; } ?>
</table> <a href="add.php"><input type="button" value="添加数据" /></a> </body>
下面让查询到的关键字变颜色,用<mark>标签
<body> <br /> <form action="main.php" method="post"><!--点击查询时会将用户输入的值传递到本页面--> <div>姓名: <input type="text" name="xm" /><!--输入查询的关键字--> <input type="submit" value="查询" /><!--提交按钮,需要一个表单--> </div> </form> <br /> <table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>代号</td> <td>姓名</td> <td>性别</td> <td>民族</td> <td>生日</td> <td>操作</td> </tr>
<?php //先判断有没有提交值 $xxm = "";//定义要关键字变量 $tj = " 1=1 "; if(!empty($_POST["xm"]) && $_POST["xm"]!="")//没有值就说明是第一次加载这个页面,没有输入查询条件,点击查询就是查询所有的。有值就按照输入的值查询。 { $xxm = $_POST['xm'];//提取关键字 $tj = " name like '%{$_POST['xm']}%' "; } $db = new MySQLi("localhost","root","666","text1"); $sql = "select * from info where ".$tj;//把条件拼在查询语句后面,并加上where。 $result = $db->query($sql); $attr = $result->fetch_all(); foreach($attr as $v) { echo"<tr>"; $sex = $v[2]?"男":"女"; $name = NationName($v[3]); $newname = str_replace($xxm,"<mark>{$xxm}</mark>",$v[1]);//替换关键字,用$newname替换原来的$v[2] echo"<td>{$v[0]}</td><td>{$newname}</td><td>{$sex}</td><td>{$name}</td><td>{$v[4]}</td><td><a href='shanchu.php?c={$v[0]}' onclick=\"return confirm('确定删除吗?')\">删除</a><a href='xiugai.php?c={$v[0]}'>修改</a></td"; /*foreach($v as $v1) { echo "<td>{$v1}</td>"; }*/ echo"</tr>"; } function NationName($code) { $db = new MySQLi("localhost","root","666","text1"); $sql = "select name from nation where code = '{$code}'"; $result = $db->query($sql); $attr = $result->fetch_row(); return $attr[0]; } ?>
</table> <a href="add.php"><input type="button" value="添加数据" /></a> </body>
2.两个条件查询,模糊查询加关键字查询。
<body> <br /> <form action="main.php" method="post"><!--点击查询时会将用户输入的值传递到本页面--> <div>姓名: <input type="text" name="xm" /><!--输入查询的关键字--> 民族代号: <input type="text" name="mz" /> <input type="submit" value="查询" /><!--提交按钮,需要一个表单--> </div> </form> <br /> <table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>代号</td> <td>姓名</td> <td>性别</td> <td>民族</td> <td>生日</td> <td>操作</td> </tr>
<?php //先判断有没有提交值 $xxm = ""; $tj = " 1=1 "; $tj2 = " 1=1 ";//再做一个条件 if(!empty($_POST["xm"]) && $_POST["xm"]!="")//这个条件是判断xm的,判断模糊查询。 { $xxm = $_POST['xm']; $tj = " name like '%{$_POST['xm']}%' "; } if(!empty($_POST["mz"]) && $_POST["mz"]!="")//再做一个条件判断另一个条件 { $mz = $_POST['mz'];//取民族的代号 $tj2 = " nation = '{$_POST['mz']}' "; } $db = new MySQLi("localhost","root","666","text1"); $sql = "select * from info where ".$tj." and ".$tj2; $result = $db->query($sql); $attr = $result->fetch_all(); foreach($attr as $v) { echo"<tr>"; $sex = $v[2]?"男":"女"; $name = NationName($v[3]); $newname = str_replace($xxm,"<mark>{$xxm}</mark>",$v[1]);//替换关键字 echo"<td>{$v[0]}</td><td>{$newname}</td><td>{$sex}</td><td>{$name}</td><td>{$v[4]}</td><td><a href='shanchu.php?c={$v[0]}' onclick=\"return confirm('确定删除吗?')\">删除</a><a href='xiugai.php?c={$v[0]}'>修改</a></td"; /*foreach($v as $v1) { echo "<td>{$v1}</td>"; }*/ echo"</tr>"; } function NationName($code) { $db = new MySQLi("localhost","root","666","text1"); $sql = "select name from nation where code = '{$code}'"; $result = $db->query($sql); $attr = $result->fetch_row(); return $attr[0]; } ?>
</table> <a href="add.php"><input type="button" value="添加数据" /></a> </body>
查询后模糊查询的关键字依然存在
<body> <?php //先判断有没有提交值 $xxm = ""; $tj = " 1=1 "; $tj2 = " 1=1 ";//再做一个条件 if(!empty($_POST["xm"]) && $_POST["xm"]!="")//这个条件是判断xm的,判断模糊查询。 { $xxm = $_POST['xm']; $tj = " name like '%{$_POST['xm']}%' "; } if(!empty($_POST["mz"]) && $_POST["mz"]!="")//再做一个条件判断另一个条件 { $mz = $_POST['mz'];//取民族的代号 $tj2 = " nation = '{$_POST['mz']}' "; } ?> <br /> <form action="main.php" method="post"><!--点击查询时会将用户输入的值传递到本页面--> <div>姓名: <input type="text" name="xm" value="<?php echo $xxm ?>" /><!--输入查询的关键字--> 民族代号: <input type="text" name="mz" /> <input type="submit" value="查询" /><!--提交按钮,需要一个表单--> </div> </form> <br /> <table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>代号</td> <td>姓名</td> <td>性别</td> <td>民族</td> <td>生日</td> <td>操作</td> </tr>
<?php $db = new MySQLi("localhost","root","666","text1"); $sql = "select * from info where ".$tj." and ".$tj2; $result = $db->query($sql); $attr = $result->fetch_all(); foreach($attr as $v) { echo"<tr>"; $sex = $v[2]?"男":"女"; $name = NationName($v[3]); $newname = str_replace($xxm,"<mark>{$xxm}</mark>",$v[1]);//替换关键字 echo"<td>{$v[0]}</td><td>{$newname}</td><td>{$sex}</td><td>{$name}</td><td>{$v[4]}</td><td><a href='shanchu.php?c={$v[0]}' onclick=\"return confirm('确定删除吗?')\">删除</a><a href='xiugai.php?c={$v[0]}'>修改</a></td"; /*foreach($v as $v1) { echo "<td>{$v1}</td>"; }*/ echo"</tr>"; } function NationName($code) { $db = new MySQLi("localhost","root","666","text1"); $sql = "select name from nation where code = '{$code}'"; $result = $db->query($sql); $attr = $result->fetch_row(); return $attr[0]; } ?>
</table> <a href="add.php"><input type="button" value="添加数据" /></a> </body>
失败是什么?没有什么,只是更走近成功一步;成功是什么?就是走过了所有通向失败的路,只剩下一条路!!!