平常我們在開發系統時,一定不會缺少查詢弁?然而往往算個條件是無法滿足用戶的要求的,這時我們就應該設置多重條件進行組合,讓用戶查詢時以更加方便地選擇查詢條件,迅速找到他們所滿足的記錄.
現在我們假設開發一個鐘表公司的客戶訂單系統,有客戶訂單編號,類別,名稱,數量,價格等資料,這裡就不將資料一一列擊,.訂單表如下:
訂單編號(ID) 類別(TYPE)名稱(NAME)數量(QTY) 價格(PRICE)
001 機芯 機芯1 100 150
001 表殼 表殼1 1000 60
001 表帶 表帶1 500 70
002 機芯 機芯2 200 40
002 表殼 表殼2 300 53
002表帶 表帶2 400 46
現在我們設想要建一個查詢系統,讓用戶即可根據訂單編號,也可根據類別,或者根據價格,或者其中的各自組合來實現快速查詢,代號如下:
下面此部分是顯示查詢條件的窗體
<html>
<?
$linkstr=mysql_connect("localhost","root","sa");
mysql_select_db("cx",$linkstr);
?>
<script language="JavaScript">
function variable()
{
if (document.search.select1.value!="1")
{
if (document.search.no.value=="")
{
window.alert("請輸入訂單號碼!");
return false;
}
else
{
if (document.search.type.value=="")
{
window.alert("請選擇配件類別!");
return false;
}
}
}
else
{
if (document.search.select2.value!="1")
{
if (document.search.price.value=="")
{
window.alert("請輸入價格!");
return false;
}
}
}
}
</script>
<br>
<center><font size="5"><b>多重條件組合查詢</b></font></center>
<br>
<body>
<form action="searchjg.php" method="POST" name="search" onsubmit="return variable(this.value)">
<table align="center" border="1" width="400">
<tr>
<td align="left" width="100">訂單編號</td>
<td align="left" width="300"><input type="text" name="no"></td>
</tr>
<tr>
<td align="left" width="200">
<select name="select1">
<option selected value="1">
<option value="2">或者
<option value="3">而且
</select>類別為
</td>
<td align="left" width="200">
<select name="type">
<option selected>
<?
$querystring="select distinct type from orders ";
$result=mysql_query($querystring,$linkstr);
while (list($type)=mysql_fetch_row($result))
{
echo "<option value="$type">".$type;
}
?>
</select>
</tr>
<tr>
<td>
<select name="select2">
<option selected value="1">
<option value="2">或者
<option value="3">而且
</select>價格位在
</td>
<td><select name="price">
<option selected>
<option value="1">50以下
<option value="2">50~200?
<option value="3">200以上
</select>的配件
</td>
</tr>
<table width="400" align="right">
<tr>
<td>
<input type="submit" name="submit" value="開始查詢">
</td>
</tr>
</table>
</table>
</form>
</body>
</html>