當前位置:首頁 » 編程語言 » php多條件搜索

php多條件搜索

發布時間: 2023-04-10 19:29:05

php 搜索 多條件語句怎麼寫

不知道你有沒有存外鍵有的話

sql">SELECT*fromaasa1leftjoinbasb1ona1.id=b1.idleftjoincasc1onb1.id=c1.idwheredwlike'%xxx%'

Ⅱ MYSQL資料庫+PHP,多重條件搜索的方法,高手解答一下。高分懸賞。

這個很簡單,你可以先用GET獲取URL中KEYWORD的值,獲得了之後進行第一次MYSQL查詢,當用戶在返回的結果中再次點擊後即可再次查詢.
同時也可以用鏈表查詢來解決,即MYSQL中的多對多查詢.
這個你可以去查詢下相關例子,我就不在這細說了.
QQ:408668252
如果找不到那找:[email protected]

Ⅲ PHP中關於查詢多個條件的代碼

先向大家說明需求:按照系統的要求,將通過部門名稱、員工姓名、PC名稱、IP地址等等欄位來進行組合查詢從而得到想要的數據結果。那麼,為了簡單起見,我們用兩個條件(部門名稱、員工姓名)的組合查詢來向大家說明這一技術技巧。當只輸入部門名而員工姓名為空值時,那麼部門內所有員工信息將被呈現,只有當同時限制部門與員工姓名時,才能查詢出唯一信息。

那就讓我們開始。

首先建立查詢頁面search.php,不同於上次單一條件查詢,這次需要兩個條件的組合進行查詢。

<html>
<body>
<h3>查詢</h3>
<form action="search_result.php" method="POST">
部門名稱:<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的值通過Post的方法傳遞給search_result.php文件。

然後便到了這次主題的關鍵,search_result.php文件如何接受這兩個參數值,並判斷當其中一個欄位為空值時,如何將其排除查詢條件。

怎麼理解上面這句話,舉例子來說,如果我們單純地將接收參數的查詢語句寫成 select * from info where depart='部門值參數' and ename='員工姓名參數' 的話,那麼如果其中一個參數為空時我們就將得到 select * from info where depart='技術部' and ename='' ,顯然,這樣的查詢很有可能返回空的結果,因為這句查詢語句的意思就是,查詢所有技術部沒有姓名的人的數據,這不是很荒唐么,倒過來如果是 select * from info where depart='' and ename='sunec' ,那麼它的意思就是查詢員工姓名為sunec但是不屬於任何部門的人,那自然也是查詢不到結果的。

正確的做法應該是,在查詢語句中過濾掉那個為空值的的參數。比如,當輸入部門名時應該得到 select * from info where depart='技術部' 。這樣,查詢語句的意思就變成查詢所有部門為技術部員工的信息了,這就是了。
<?php
$link =mysql_connect("localhost","root","管理員密碼");
mysql_select_db("infosystem", $link);
?>

<?php

//注釋1-----------------------------
$depart=$_POST["depart"];
$ename=$_POST["ename"];

//注釋2------------------------
if($depart != null){
$a = " and depart like '%$depart%'";}

if($ename != null){
$b = " and ename like '%$ename%'";}

//注釋3---www.51qgj.com-----
$q = "SELECT * FROM info where (1=1)";
$q .=$a;
$q .=$b;

//注釋4---www.weiyin8.com-------------
mysql_query("SET NAMES GB2312");
$rs = mysql_query($q, $link);
echo "<table>";
echo "<tr><td>部門</td><td>員工姓名</td></tr>";
while($row = mysql_fetch_object($rs)) echo "<tr><td>$row->depart</td><td>$row->ename</td></tr>";
echo "</table>";

mysql_close($link);

?>
注釋1:接收search.php通過post傳遞出的參數,把兩個參數分別存儲入變數:depart和ename。

注釋2:判斷參數是否為空,如果為空,不作任何操作。如果有參數傳出,則生成相應SQL語句。

注釋3:用追加的方法生成SQL語句。

注釋4:生成數據集,顯示數據,最後關閉資料庫連接。

Ⅳ php 多條件搜索 條件都是用foreach輸入的 不是固定的 多少個條件是根據後台添加的多少來決定的 怎麼來實現

這個東西建議你用返首JS去做,寫成一個類似三維數組(JS本身好像是沒有二維數組定義的,但數組的值是一個數組才弄出來二維數組),如果你一定要弄成PHP的,那隻能是用數組拼裝,你先搜索出第一類數據例如城市這類,完事再獲取北京這類的ID,搜索出第二類關鍵詞的數據,完事拼裝成一個三維數組,在利用第二類的ID弄出第三類的數據,方法和上面一樣,但這樣的缺點非常明顯,如哪世腔果你數據李衫多的,因為好列遍4次,效率會很低。

Ⅳ php 多條件搜索及欄位數據操作後返回頁面重置(搜索條件消失,回到數據展示的原始頁面了)

一種,對學員操作部分,可以使用彈窗或者彈層,配合ajax實現,推薦使用 layer 這個組件,具體自行網路。這樣操作修改不會刷新當前已查詢好頁面。

一種,查詢的時候,用cookie或者session存儲請求條件的內容,再陸拿碰次進入頁面時,先判斷session或cookie有沒內容,優先使用。什麼時候記憶什麼時候刪除,這個要想好在哪裡控制。

一種,我自已碰到的一個瀑布流控制,是使用localStorage方式,在切換時記早談下div的html,這敏橋個只局限在html5的瀏覽器。

Ⅵ PHP 多條件復合搜索要怎麼實現

這個說起伍緩喚來很很復雜,其實做起來很簡單,就是一哪櫻個where條件的應用

$condition='';
if($param=='1'){
$condition='param=1';
}
if($status腔凱=='2'){
$condition.='andstatus=1';
}
$sql="select*fromtablewhere".$condition."orderbyiddesc";

Ⅶ php多條件復合查詢

在我們的網站設計過程中,經常會用到多條件查詢,本文的源碼是一個二手房屋查詢的例子。在本例中,我們要實現能夠通過地理位置,物業類型,房屋價格,房屋面積及信息發布日期等多個條件查詢到客戶所需的資料。
查詢文件(search.php)
一、生成查詢語句:
<?
$conn=mysql_connect("localhost","root","");
$db=mysql_select_db("lingyun");
$query="select * from message where tradetype='".$tradetype."'"; //交易類型,如出租,出售
$SQL=$SQL . "wuye='" . $wuye . "'";
if($housetype!="不限"){
$query.=" && housetype='".$housetype."'"; //房屋類型,如二室一廳,三室二廳
}
if($degree!="不限"){
$query.=" && degree='".$degree."'"; //新舊程度
}
if($wuye!="不限"){
$query.=" && wuye='".$wuye."'"; //物業類型 如住房,商鋪
}
if($price2!=""){
switch($price1){
case "大於":
$query.=" && price>'".$price2."'"; //價格
break;
case "等於":
$query.=" && price='".$price2."'";
break;
case "小於":
$query.=" && price<'".$price2."'";
break;
}
}
if($area2!=""){
switch($area1){
case "大於":
$query.=" && area>'".$area2."'"; //面積
break;
case "等於":
$query.=" && area='".$area2."'";
break;
case "小於":
$query.=" && area<'".$area2."'";
break;
}
}
switch($pubdate){ //發布日期
case "本星期內":
$query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=7";
break;
case "一個月內":
$query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=30";
break;
case "三個月內":
$query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=91";
break;
case "六個月內":
$query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=183";
break;
}
if($address!=""){
$query.=" && address like '%$address%'"; //地址
}
if(!$page){
$page=1;
}
?>
二、輸出查詢結果:
<?php
if ($page){
$page_size=20;
$result=mysql_query($query);
#$message_count=mysql_result($result,0,"total");
$message_count=10;
$page_count=ceil($message_count/$page_size);
$offset=($page-1)*$page_size;
$query=$query." order by date desc limit $offset, $page_size";
$result=mysql_query($query);
if($result){
$rows=mysql_num_rows($result);
if($rows!=0){
while($myrow=mysql_fetch_array($result)){
echo "<tr>";
echo "<td width='15' height='12'><img src='image/home2.gif' width='14' height='14'></td>";
echo "<td width='540' height='12'>$myrow[id] $myrow[tradetype] $myrow[address] $myrow[wuye]($myrow[housetype])<font style='font-size:9pt'>[$myrow[date]]</font>";
echo "</td>";
echo "<td width='75' height='12'><a href='view_d.php?code=$myrow[code]' target='_blank'>詳細內容</a></td>";
echo "</tr>";
}
}
else echo "<tr><td><div align='center'><img src='image/sorry.gif'><br><br>沒有找到滿足你條件的記錄</div></td></tr>";
}
$prev_page=$page-1;
$next_page=$page+1;
echo "<div align='center'>";
echo " 第".$page."/".$page_count."頁 ";
if ($page<=1){
echo "|第一頁|";
}
else{
echo "<a href='$PATH_INFO?page=1'>|第一頁|</a>";
}
echo " ";
if ($prev_page<1){
echo "|上一頁|";
}
else{
echo "<a href='$PATH_INFO?page=$prev_page'>|上一頁|</a>";
}
echo " ";
if ($next_page>$page_count){
echo "|下一頁|";
}
else{
echo "<a href='$PATH_INFO?page=$next_page'>|下一頁|</a>";
}
echo " ";
if ($page>=$page_count){
echo "|最後一頁|";
}
else{
echo "<a href='$PATH_INFO?page=$page_count'>|最後一頁|</a>";
}
echo "</div>";
}
else{
echo "<p align='center'>現在還沒有房屋租賃信息!</p>";
}
echo "<hr width="100%" size="1">";
?>
</table>

Ⅷ php多條件復合搜索怎麼做到

這個用腳本來做更簡單些,不用分多次往a.php傳參。傳一次就行了。
<!--HTML START-->
<!--函數參數推薦寫數字,既對應「摩托羅拉」的id,但由於這里你沒給出,我索性寫上漢字了-->
<a href="javescript:set_made('摩托羅拉')">摩托羅拉</a>
<a href="javescript:set_made('諾基亞')">諾基亞</a>
<a href="javescript:set_made('蘋果')">蘋果</a>

<a href="javescript:set_price('1000-2000')">1000-2000元</a>
<a href="javescript:set_price('2000-3000')">2000-3000元</a>
<a href="javescript:set_price('3000-5000')">3000-5000元</a>

<a href="javescript:set_os('android系統')">android系統</a>
<a href="javescript:set_os('塞班系統')">塞班系統</a>
<a href="javescript:set_os('蘋果系統')">蘋果系統</a>
<!--這里的表單隱藏域,只顯示一個搜索按鈕-->
<form action='' method='post'>
<input id='made' name='made' type='hidden' value='<?php echo $_POST['made'] ?>'/>
<input id='price' name='price' type='hidden' value='<?php echo $_POST['price'] ?>'/>
<input id='os' name='os' type='hidden' value='<?php echo $_POST['os'] ?>'/>
<input type='submit' value = '搜索'/>
</form>
<!--HTML END-->

<!--SCRIPT START-->
<script>
/* @Tips : 這段JS代碼可以放到單獨的JS文件中去,也可以直接寫到head里,隨你。
* @Purpose : 這里幾個函數分別是把隱藏域中的made、price、os設置成對應的值,點擊鏈接時觸發
* @Method : set_made,set_price,set_os
* @Param : str 字元串或者數字,請根據你的需要來決定
* @Return : NULL
*/
function set_made (str) {
document.getElementById('made').value = str;
}
function set_price (str) {
document.getElementById('price').value = str;
}
function set_os (str) {
document.getElementById('os').value = str;
}
</script>
<!--SCRIPT END-->

至於函數參數里你是要添ID 還是添漢字,自己改就行了。
還有你說的那個變色的問題,也不難做,但代碼有點長,我懶得寫了……
就跟你說一下方法:
首先你要給這幾個<a>標簽做個CSS類名,比如<a class='test'>,這個test可以不寫,主要是用來區別頁面其它的<a>標簽。當然不寫也沒關系,只是會讓JS腳本稍慢一點。
然後用document.getElementByTageName('a'),獲取頁面中所有的<a>標簽。做個循環,把class不是test的過濾掉,再用他們的innerHTML屬性與made、price、os的value屬性分別比較,如果是一樣的話,就改變它的背景顏色。

熱點內容
android文本框居中 發布:2024-11-02 08:21:55 瀏覽:439
撕裂者哪個配置好 發布:2024-11-02 07:58:49 瀏覽:990
c編寫的程序經過編譯 發布:2024-11-02 07:41:18 瀏覽:941
mc伺服器靈魂綁定如何出售 發布:2024-11-02 07:39:36 瀏覽:583
cf伺服器不同如何一起玩游戲 發布:2024-11-02 07:38:24 瀏覽:945
手機壓縮游戲 發布:2024-11-02 07:27:03 瀏覽:451
c語言的四書五經 發布:2024-11-02 07:21:42 瀏覽:742
vbaexcel資料庫 發布:2024-11-02 07:16:09 瀏覽:11
java線程的sleep 發布:2024-11-02 07:15:18 瀏覽:845
手機緩存清理器 發布:2024-11-02 07:07:03 瀏覽:312