|
先向大家說(shuō)明需求:按照我們系統(tǒng)的要求,我們將通過(guò)部門(mén)名稱(chēng)、員工姓名、PC名稱(chēng)、IP地址等等字段來(lái)進(jìn)行組合查詢(xún)從而得到想要的數(shù)據(jù)結(jié)果。那么,為了簡(jiǎn)單起見(jiàn),我們用兩個(gè)條件(部門(mén)名稱(chēng)、員工姓名)的組合查詢(xún)來(lái)向大家說(shuō)明這一技術(shù)技巧。當(dāng)我們只輸入部門(mén)名而員工姓名為空值時(shí),那么部門(mén)內(nèi)所有員工信息將被呈現(xiàn),只有當(dāng)你同時(shí)限制部門(mén)與員工姓名時(shí),才能查詢(xún)出唯一信息。
那就讓我們開(kāi)始。
首先建立查詢(xún)頁(yè)面search.php,不同于上次單一條件查詢(xún),這次我們需要兩個(gè)條件的組合進(jìn)行查詢(xún)。
<html>
<body>
<h3>查詢(xún)</h3>
<form action="search_result.php" method="POST">
部門(mén)名稱(chēng):<input type="text" size=25 name="depart" value=""> <br><br>
員工姓名: <input type="text" size=25 name="ename" value=""> <br><br>
<input type="submit" name="提交" value="提交">
</form>
</body>
</html>
和上次一樣,我們將depart與ename的值通過(guò)Post的方法傳遞給search_result.php文件。
然后便到了這次主題的關(guān)鍵,search_result.php文件如何接受這兩個(gè)參數(shù)值,并判斷當(dāng)其中一個(gè)字段為空值時(shí),如何將其排除查詢(xún)條件。
怎么理解上面這句話(huà),舉例子來(lái)說(shuō),如果我們單純地將接收參數(shù)的查詢(xún)語(yǔ)句寫(xiě)成 select * from info where depart='部門(mén)值參數(shù)' and ename='員工姓名參數(shù)' 的話(huà),那么如果其中一個(gè)參數(shù)為空時(shí)我們就將得到 select * from info where depart='技術(shù)部' and ename='' ,顯然,這樣的查詢(xún)很有可能返回空的結(jié)果,因?yàn)檫@句查詢(xún)語(yǔ)句的意思就是,查詢(xún)所有技術(shù)部沒(méi)有姓名的人的數(shù)據(jù),這不是很荒唐么,倒過(guò)來(lái)如果是 select * from info where depart='' and ename='sunec' ,那么它的意思就是查詢(xún)員工姓名為sunec但是不屬于任何部門(mén)的人,那自然也是查詢(xún)不到結(jié)果的。
正確的做法應(yīng)該是,在查詢(xún)語(yǔ)句中過(guò)濾掉那個(gè)為空值的的參數(shù)。比如,當(dāng)我們只輸入部門(mén)名時(shí)應(yīng)該得到 select * from info where depart='技術(shù)部' 。這樣,查詢(xún)語(yǔ)句的意思就變成查詢(xún)所有部門(mén)為技術(shù)部員工的信息了,這就是我們想要的。
明確了思路,那么,下一次我們就去實(shí)現(xiàn)它!
php技術(shù):PHP組合查詢(xún)多條件查詢(xún)實(shí)例代碼第1/2頁(yè),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。