php多条件复合查询
比如一个网页。有:<ahref="a.php">摩托罗拉</a><ahref="a.php">诺基亚</a><ahref="a.php">苹果</a><ahref="a....
比如一个网页。有:
<a href="a.php">摩托罗拉</a>
<a href="a.php">诺基亚</a>
<a href="a.php">苹果</a>
<a href="a.php">1000-2000元</a>
<a href="a.php">2000-3000元</a>
<a href="a.php">3000-5000元</a>
<a href="a.php">android系统</a>
<a href="a.php">塞班系统</a>
<a href="a.php">苹果系统</a>
点一个之后,跳转到a.php 比如我点了诺基亚,到了a.php 要进行第二次筛选,比如点了1000-2000元,这个连接该怎么做?
类似于下面这个图片这种情况,还有个问题就是,我点了诺基亚之后,到了A.PHP页面,怎么能让诺基亚这个连接变色? 就如同图片那样 展开
<a href="a.php">摩托罗拉</a>
<a href="a.php">诺基亚</a>
<a href="a.php">苹果</a>
<a href="a.php">1000-2000元</a>
<a href="a.php">2000-3000元</a>
<a href="a.php">3000-5000元</a>
<a href="a.php">android系统</a>
<a href="a.php">塞班系统</a>
<a href="a.php">苹果系统</a>
点一个之后,跳转到a.php 比如我点了诺基亚,到了a.php 要进行第二次筛选,比如点了1000-2000元,这个连接该怎么做?
类似于下面这个图片这种情况,还有个问题就是,我点了诺基亚之后,到了A.PHP页面,怎么能让诺基亚这个连接变色? 就如同图片那样 展开
2015-07-03 · 知道合伙人软件行家
PS一点学
知道合伙人软件行家
向TA提问 私信TA
知道合伙人软件行家
采纳数:1408
获赞数:11167
毕业于广东机电职业技术学院软件技术专业.IT行业2年从业经验,主要负责建站,SEO,营销.现任凯龙网络技术主管.
向TA提问 私信TA
关注
展开全部
在我们的网站设计过程中,经常会用到多条件查询,本文的源码是一个二手房屋查询的例子。在本例中,我们要实现能够通过地理位置,物业类型,房屋价格,房屋面积及信息发布日期等多个条件查询到客户所需的资料。
查询文件(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>
查询文件(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>
展开全部
多条件搜索,比如品牌、价格这两个把,浏览器地址一般会有a.php?pinpai=*&price=*
多个用&分开。
里面的处理代码就是
获取这两个参数,然后查询数据库,一般情况是,参数没有的搜索条件会自动没有这个搜索条件。
$sql="select * from product where pinpai='' and price=''";
多个用&分开。
里面的处理代码就是
获取这两个参数,然后查询数据库,一般情况是,参数没有的搜索条件会自动没有这个搜索条件。
$sql="select * from product where pinpai='' and price=''";
追问
数据库命令查询我知道,我的意思是,比如查询诺基亚这样写
">诺基亚
a,php界面获取$pinpai,进行数据库查询
$sql="select * from 手机表 where pinpai=;诺基亚';
这个时候我在a.php内,再点价格1000-2000,这个价格的超链接怎么写? 还有图上的那个点了诺基亚之后,诺基亚的超链接变颜色这样该怎么做?
追答
建议你先好好看一下javascript。
你比如说选择第一个后再选择第二个,你再传递个参数即可。也就是第一次选择参数后,第二次再选择的时候链接变化。
还是跟你说下简单的方法吧,没必要弄的那么复杂。而且你给的那个截图,就用了一个处理页面。
他的处理与显示页面是一个php页面,我们假如是index.php
实际上就是,比如你选择三星:你的连接就会是index.php?pinpai=三星。
然后你选择500元以下,连接变为inde.php?pinpai=三星?price=500
后面的参数以此累加。
在php处理页面。获取这些参数
$pinpai=$_GET['pinpai'];
$price=$_GET[price];
以此类推。再往下要做个判断。
$link='';
if(!empty($pinpai)){
$link = "pinpai=".$pinpai."";
}
if(!empty($pinpai)&&!empty($price)){
$link=link." and price=".$price."";
}elseif(empty($pinpai)&&!empty($price)){
$link = "price=".$price."";
}
//以此类推判断参数是否存在如果存在就加入搜索条件,最后就是搜索语句了
$query = "select * from aa where ".$link."";
//其它就不写了
但是实际应用时没这么复杂,因为这些所有数据都存在数据库中,调取这些分类时直接就会生成想要的连接。做多了就知道了。
第二个:链接变色这个问题。一般当前连接都会使用不同于其它的连接样式,
比如普通的就是这样三星变色的诺基亚
然后在样式表中添加一个a.hover{background:orange;}即可
一般我们这些搜索条件都是存在数据库的,在循环输出时来判断当前连接是哪一个就让这一个加上hover类即可。
例如:
$price=$_GET['price'];
while($row=query_num_row($query)){
if($row['name']==$price){
$bianse="class='hover'";
}
echo "".$row['name']."";
}
上面循环中的if语句就是判断文字连接是否是当前浏览器连接。如果是就加上hover类属性,从而呈现出背景不同效果。
希望能帮到朋友。
还有上面的代码,仅供参考,可能有错误,朋友自己再写即可
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询