PHP实例:用PHP简单实现多条件查询
在我们的网站设计过程中,经常会用到多条件查询,本文的源码是一个二手房屋查询的例子。在本例中,我们要实现能够通过地理位置,物业类型,房屋价格,房屋面积及信息发布日期等多个条件查询到客户所需的资料。
查询文件(search.php)
一、生成查询语句:
代码
1 <?
2 $conn=mysql_connect("localhost","root","");
3 $db=mysql_select_db("lingyun");
4 $query="select * from message where tradetype='".$tradetype."'"; //交易类型,如出租,出售
5 $SQL=$SQL . "wuye='" . $wuye . "'";
6 if($housetype!="不限"){
7 $query.=" && housetype='".$housetype."'"; //房屋类型,如二室一厅,三室二厅
8 }
9 if($degree!="不限"){
10 $query.=" && degree='".$degree."'"; //新旧程度
11 }
12 if($wuye!="不限"){
13 $query.=" && wuye='".$wuye."'"; //物业类型 如住房,商铺
14 }
15 if($price2!=""){
16 switch($price1){
17 case "大于":
18 $query.=" && price>'".$price2."'"; //价格
19 break;
20 case "等于":
21 $query.=" && price='".$price2."'";
22 break;
23 case "小于":
24 $query.=" && price<'".$price2."'";
25 break;
26 }
27 }
28 if($area2!=""){
29 switch($area1){
30 case "大于":
31 $query.=" && area>'".$area2."'"; //面积
32 break;
33 case "等于":
34 $query.=" && area='".$area2."'";
35 break;
36 case "小于":
37 $query.=" && area<'".$area2."'";
38 break;
39 }
40 }
41 switch($pubdate){ //发布日期
42 case "本星期内":
43 $query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=7";
44 break;
45 case "一个月内":
46 $query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=30";
47 break;
48 case "三个月内":
49 $query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=91";
50 break;
51 case "六个月内":
52 $query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=183";
53 break;
54 }
55 if($address!=""){
56 $query.=" && address like '%$address%'"; //地址
57 }
58 if(!$page){
59 $page=1;
60 }
61 ?>
2 $conn=mysql_connect("localhost","root","");
3 $db=mysql_select_db("lingyun");
4 $query="select * from message where tradetype='".$tradetype."'"; //交易类型,如出租,出售
5 $SQL=$SQL . "wuye='" . $wuye . "'";
6 if($housetype!="不限"){
7 $query.=" && housetype='".$housetype."'"; //房屋类型,如二室一厅,三室二厅
8 }
9 if($degree!="不限"){
10 $query.=" && degree='".$degree."'"; //新旧程度
11 }
12 if($wuye!="不限"){
13 $query.=" && wuye='".$wuye."'"; //物业类型 如住房,商铺
14 }
15 if($price2!=""){
16 switch($price1){
17 case "大于":
18 $query.=" && price>'".$price2."'"; //价格
19 break;
20 case "等于":
21 $query.=" && price='".$price2."'";
22 break;
23 case "小于":
24 $query.=" && price<'".$price2."'";
25 break;
26 }
27 }
28 if($area2!=""){
29 switch($area1){
30 case "大于":
31 $query.=" && area>'".$area2."'"; //面积
32 break;
33 case "等于":
34 $query.=" && area='".$area2."'";
35 break;
36 case "小于":
37 $query.=" && area<'".$area2."'";
38 break;
39 }
40 }
41 switch($pubdate){ //发布日期
42 case "本星期内":
43 $query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=7";
44 break;
45 case "一个月内":
46 $query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=30";
47 break;
48 case "三个月内":
49 $query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=91";
50 break;
51 case "六个月内":
52 $query.=" && TO_DAYS(NOW()) - TO_DAYS(date)<=183";
53 break;
54 }
55 if($address!=""){
56 $query.=" && address like '%$address%'"; //地址
57 }
58 if(!$page){
59 $page=1;
60 }
61 ?>
二、输出查询结果:
以下为引用的内容:
代码
1 <?php
2 if ($page){
3 $page_size=20;
4 $result=mysql_query($query);
5 #$message_count=mysql_result($result,0,"total");
6 $message_count=10;
7 $page_count=ceil($message_count/$page_size);
8 $offset=($page-1)*$page_size;
9 $query=$query." order by date desc limit $offset, $page_size";
10 $result=mysql_query($query);
11 if($result){
12 $rows=mysql_num_rows($result);
13 if($rows!=0){
14 while($myrow=mysql_fetch_array($result)){
15 echo "<tr>";
16 echo "<td width='15' height='12'><img src='image/home2.gif' width='14' height='14'></td>";
17 echo "<td width='540' height='12'>$myrow[id] $myrow[tradetype] $myrow[address] $myrow[wuye]($myrow[housetype])<font style='font-size:9pt'>[$myrow[date]]</font>";
18 echo "</td>";
19 echo "<td width='75' height='12'><a href='view_d.php?code=$myrow[code]' target='_blank'>详细内容</a></td>";
20 echo "</tr>";
21 }
22 }
23 else echo "<tr><td><div align='center'><img src='image/sorry.gif'><br><br>没有找到满足你条件的记录</div>& lt;/td></tr>";
24 }
25 $prev_page=$page-1;
26 $next_page=$page 1;
27 echo "<div align='center'>";
28 echo " 第".$page."/".$page_count."页 ";
29 if ($page<=1){
30 echo "|第一页|";
31 }
32 else{
33 echo "<a href='$PATH_INFO?page=1'>|第一页|</a>";
34 }
35 echo " ";
36 if ($prev_page<1){
37 echo "|上一页|";
38 }
39 else{
40 echo "<a href='$PATH_INFO?page=$prev_page'>|上一页|</a>";
41 }
42 echo " ";
43 if ($next_page>$page_count){
44 echo "|下一页|";
45 }
46 else{
47 echo "<a href='$PATH_INFO?page=$next_page'>|下一页|</a>";
48 }
49 echo " ";
50 if ($page>=$page_count){
51 echo "|最后一页|";
52 }
53 else{
54 echo "<a href='$PATH_INFO?page=$page_count'>|最后一页|</a>";
55 }
56 echo "</div>";
57 }
58 else{
59 echo "<p align='center'>现在还没有房屋租赁信息!</p>";
60 }
61 echo "<hr width="100%" size="1">";
62 ?>
63 </table>
2 if ($page){
3 $page_size=20;
4 $result=mysql_query($query);
5 #$message_count=mysql_result($result,0,"total");
6 $message_count=10;
7 $page_count=ceil($message_count/$page_size);
8 $offset=($page-1)*$page_size;
9 $query=$query." order by date desc limit $offset, $page_size";
10 $result=mysql_query($query);
11 if($result){
12 $rows=mysql_num_rows($result);
13 if($rows!=0){
14 while($myrow=mysql_fetch_array($result)){
15 echo "<tr>";
16 echo "<td width='15' height='12'><img src='image/home2.gif' width='14' height='14'></td>";
17 echo "<td width='540' height='12'>$myrow[id] $myrow[tradetype] $myrow[address] $myrow[wuye]($myrow[housetype])<font style='font-size:9pt'>[$myrow[date]]</font>";
18 echo "</td>";
19 echo "<td width='75' height='12'><a href='view_d.php?code=$myrow[code]' target='_blank'>详细内容</a></td>";
20 echo "</tr>";
21 }
22 }
23 else echo "<tr><td><div align='center'><img src='image/sorry.gif'><br><br>没有找到满足你条件的记录</div>& lt;/td></tr>";
24 }
25 $prev_page=$page-1;
26 $next_page=$page 1;
27 echo "<div align='center'>";
28 echo " 第".$page."/".$page_count."页 ";
29 if ($page<=1){
30 echo "|第一页|";
31 }
32 else{
33 echo "<a href='$PATH_INFO?page=1'>|第一页|</a>";
34 }
35 echo " ";
36 if ($prev_page<1){
37 echo "|上一页|";
38 }
39 else{
40 echo "<a href='$PATH_INFO?page=$prev_page'>|上一页|</a>";
41 }
42 echo " ";
43 if ($next_page>$page_count){
44 echo "|下一页|";
45 }
46 else{
47 echo "<a href='$PATH_INFO?page=$next_page'>|下一页|</a>";
48 }
49 echo " ";
50 if ($page>=$page_count){
51 echo "|最后一页|";
52 }
53 else{
54 echo "<a href='$PATH_INFO?page=$page_count'>|最后一页|</a>";
55 }
56 echo "</div>";
57 }
58 else{
59 echo "<p align='center'>现在还没有房屋租赁信息!</p>";
60 }
61 echo "<hr width="100%" size="1">";
62 ?>
63 </table>


浙公网安备 33010602011771号