vcrhome 发表于 2007-7-19 12:44

一个简单实现多条件查询的例子_PHP实例

<P>在我们的网站设计过程中,经常会用到多条件查询,本文的源码是一个二手房屋查询的例子。在本例中,我们要实现能够通过地理位置,物业类型,房屋价格,房屋面积及信息发布日期等多个条件查询到客户所需的资料。以下是实现过程。<br>查询条件界面(略):<br>查询文件(search.php)<br>一、生成查询语句:<br>&lt;?<br>$conn=mysql_connect("localhost","root","");<br>$db=mysql_select_db("lingyun");<br>$query="select * from message where tradetype='".$tradetype."'";  //交易类型,如出租,出售<br>$SQL=$SQL . "wuye='" . $wuye . "'";<br>if($housetype!="不限"){<br>$query.=" &amp;&amp; housetype='".$housetype."'"; //房屋类型,如二室一厅,三室二厅<br>}<br>if($degree!="不限"){<br>$query.=" &amp;&amp; degree='".$degree."'";  //新旧程度<br>}<br>if($wuye!="不限"){<br>$query.=" &amp;&amp; wuye='".$wuye."'";   //物业类型 如住房,商铺<br>}<br>if($price2!=""){<br>switch($price1){<br>case "大于":<br>$query.=" &amp;&amp; price&gt;'".$price2."'";   //价格<br>break;<br>case "等于":<br>$query.=" &amp;&amp; price='".$price2."'";<br>break;<br>case "小于":<br>$query.=" &amp;&amp; price&lt;'".$price2."'";<br>break;<br>}<br>}<br>if($area2!=""){<br>switch($area1){<br>case "大于":<br>$query.=" &amp;&amp; area&gt;'".$area2."'";  //面积<br>break;<br>case "等于":<br>$query.=" &amp;&amp; area='".$area2."'";<br>break;<br>case "小于":<br>$query.=" &amp;&amp; area&lt;'".$area2."'";<br>break;<br>}<br>}<br>switch($pubdate){                   //发布日期<br>case "本星期内":<br>$query.=" &amp;&amp; TO_DAYS(NOW()) - TO_DAYS(date)&lt;=7";<br>break;<br>case "一个月内":<br>$query.=" &amp;&amp; TO_DAYS(NOW()) - TO_DAYS(date)&lt;=30";<br>break;<br>case "三个月内":<br>$query.=" &amp;&amp; TO_DAYS(NOW()) - TO_DAYS(date)&lt;=91";<br>break;<br>case "六个月内":<br>$query.=" &amp;&amp; TO_DAYS(NOW()) - TO_DAYS(date)&lt;=183";<br>break;<br>}<br>if($address!=""){<br>$query.=" &amp;&amp;  address like '%$address%'";  //地址<br>}<br>if(!$page){<br>$page=1;<br>}<br>?&gt;</P>
<P>二、输出查询结果:<br>&lt;?php<br>     if ($page){<br>     $page_size=20;<br>     $result=mysql_query($query);<br>     #$message_count=mysql_result($result,0,"total");<br>     $message_count=10;<br>     $page_count=ceil($message_count/$page_size);<br>     $offset=($page-1)*$page_size;<br>     $query=$query." order by date desc limit $offset, $page_size";<br>     $result=mysql_query($query);<br>     if($result){<br>     $rows=mysql_num_rows($result);<br>     if($rows!=0){<br>     while($myrow=mysql_fetch_array($result)){<br>     echo "&lt;tr&gt;";<br>     echo "&lt;td width='15' height='12'&gt;&lt;img src='image/home2.gif' width='14' height='14'&gt;&lt;/td&gt;";<br>     echo "&lt;td width='540' height='12'&gt;$myrow[id]&amp;nbsp;$myrow[tradetype]&amp;nbsp;$myrow[address]&amp;nbsp;$myrow[wuye]($myrow[housetype])&lt;font style='font-size:9pt'&gt;[$myrow[date]]&lt;/font&gt;";<br>     echo "&lt;/td&gt;";<br>     echo "&lt;td width='75' height='12'&gt;&lt;a href='view_d.php?code=$myrow[code]' target='_blank'&gt;详细内容&lt;/a&gt;&lt;/td&gt;";<br>     echo "&lt;/tr&gt;";<br>         }<br>       }<br>     else echo "&lt;tr&gt;&lt;td&gt;&lt;div align='center'&gt;&lt;img src='image/sorry.gif'&gt;&lt;br&gt;&lt;br&gt;没有找到满足你条件的记录&lt;/div&gt; &lt;/td&gt;&lt;/tr&gt;";<br>     }</P>
<P>         $prev_page=$page-1;<br>         $next_page=$page+1;<br>         echo "&lt;div align='center'&gt;";<br>         echo "&amp;nbsp;第".$page."/".$page_count."页&amp;nbsp";<br>         if ($page&lt;=1){<br>             echo "|第一页|";<br>            }<br>         else{<br>             echo "&lt;a href='$PATH_INFO?page=1'&gt;|第一页|&lt;/a&gt;";<br>             }<br>         echo " ";<br>         if ($prev_page&lt;1){<br>             echo "|上一页|";<br>            }<br>         else{<br>             echo "&lt;a href='$PATH_INFO?page=$prev_page'&gt;|上一页|&lt;/a&gt;";<br>             }<br>         echo " ";<br>         if ($next_page&gt;$page_count){<br>             echo "|下一页|";<br>             }<br>         else{<br>             echo "&lt;a href='$PATH_INFO?page=$next_page'&gt;|下一页|&lt;/a&gt;";<br>              }<br>         echo " ";<br>         if ($page&gt;=$page_count){<br>             echo "|最后一页|";<br>               }<br>         else{<br>             echo "&lt;a href='$PATH_INFO?page=$page_count'&gt;|最后一页|&lt;/a&gt;";<br>             }<br>        echo "&lt;/div&gt;";<br>    }<br>     else{<br>         echo "&lt;p align='center'&gt;现在还没有房屋租赁信息!&lt;/p&gt;";<br>       }<br>   echo "&lt;hr width="100%" size="1"&gt;";<br>  ?&gt;<br>    &lt;/table&gt;    <br>        <br>如果在使用过程中出现什么问题,请与我联系(<a href="mailto:yk_lingyun@21cn.com" target="_blank" >yk_lingyun@21cn.com</A>),欢迎指正!</P>
<P><br>【本文版权归作者与奥索网共同拥有,如需转载,请注明作者及出处】</P>
[align=right][color=#000066][此贴子已经被静夜思于2007-8-23 9:40:11编辑过][/color][/align]

lmhllr 发表于 2007-7-19 15:24

汗。。。

myfor 发表于 2007-7-20 12:36

瀑布汗

vcrhome 发表于 2007-7-23 07:25

顶贴!

isochoi 发表于 2007-7-23 10:04

好贴,为什么这里的人气如此低迷?

可可熊 发表于 2007-7-26 22:01

有点用,正在写关于mysql的东西.

vcrhome 发表于 2007-8-3 09:24

顶贴!

forever759 发表于 2007-8-21 16:00

开始怀疑这里的PHP版啦。<BR>

静夜思 发表于 2007-8-23 09:52

变相AD,封ID

页: [1]

编程论坛