精確查詢(模糊查詢、模糊+關鍵字共同查詢)


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
 1 //先判斷有沒有提交值
 2     $xm="";
 3     if(!empty($_POST["xm"]))//沒有值就說明是第一次加載這個頁面,沒有輸入查詢條件,點擊查詢就是查詢所有的。有值就按照輸入的值查詢。
 4     {
 5         $xm = $_POST["xm"];//把輸入的值取出來
 6     }
 7     $tj = "";//定義一個變量條件(tj)
 8     if($xm == "")//如果值為空
 9     {
10         $tj = " 1=1 ";//如果值為空,就給條件賦一個恆成立的1=1.根據這個條件能查詢出所有的數據。
11     }
12     else
13     {
14         $tj = " name like '%{$xm}%' ";//如果值不為空,就給$tj賦上輸入輸入的值。
15     }

上面帶行號的代碼可以簡化為下面的帶行號的
 1 $xm="";
 2 if(!empty($_POST["xm"]))//沒有值就說明是第一次加載這個頁面,沒有輸入查詢條件,點擊查詢就是查詢所有的。有值就按照輸入的值查詢。
 3 {
 4   $xm = $_POST["xm"];//把輸入的值取出來
 5 }
 6 $tj = " 1=1 ";//讓$tj值默認1=1,
 7 if($xm != "")
 8 {
 9   $tj = " name like '%{$xm}%' ";//如果值不為空,就給$tj賦上輸入輸入的值。
10 }

 

或者更加簡化

1 $tj = " 1=1 ";
2     if(!empty($_POST["xm"]) && $_POST["xm"]!="")//沒有值就說明是第一次加載這個頁面,沒有輸入查詢條件,點擊查詢就是查詢所有的。有值就按照輸入的值查詢。
3     {
4             $tj = " name like '%{$_POST['xm']}%' ";
5     }

$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>
 1 <?php
 2 //先判斷有沒有提交值
 3     $xxm = "";
 4     $tj = " 1=1 ";
 5     $tj2 = " 1=1 ";//再做一個條件
 6     if(!empty($_POST["xm"]) && $_POST["xm"]!="")//這個條件是判斷xm的,判斷模糊查詢。
 7     {
 8             $xxm = $_POST['xm'];
 9             $tj = " name like '%{$_POST['xm']}%' ";
10     }
11     
12     if(!empty($_POST["mz"]) && $_POST["mz"]!="")//再做一個條件判斷另一個條件
13     {
14             $mz = $_POST['mz'];//取民族的代號
15             $tj2 = " nation = '{$_POST['mz']}' ";
16     }
17 ?>

 

<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>
 1 <?php 
 2     
 3     $db = new MySQLi("localhost","root","666","text1");
 4     
 5     $sql = "select * from info where ".$tj." and ".$tj2;
 6     
 7     $result = $db->query($sql);
 8     
 9     $attr = $result->fetch_all();
10     
11     foreach($attr as $v)
12     {
13         echo"<tr>";
14         
15         $sex = $v[2]?"男":"女";
16         
17         $name = NationName($v[3]);
18         
19         $newname = str_replace($xxm,"<mark>{$xxm}</mark>",$v[1]);//替換關鍵字
20         
21         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";
22         /*foreach($v as $v1)
23         {
24             echo "<td>{$v1}</td>";
25         }*/
26         echo"</tr>";
27     }
28         
29     function NationName($code)
30     {
31         $db = new MySQLi("localhost","root","666","text1");
32         $sql = "select name from nation where code = '{$code}'";
33         $result = $db->query($sql);
34         $attr = $result->fetch_row();
35         return $attr[0];
36     }
37     ?>       
</table>
<a href="add.php"><input type="button" value="添加數據" /></a>
</body>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM