select * from tablename where datediff(d,now,时间)<=3 or keyword='关键字' or score<20...
在表单中可以用一些checkbox跟这些条件元素做成一一对应的关系,当提交表单的时候,在PHP中根据checkbox的提交情况判断用户选中的是那些条件,然后构造sql语句,比如用户钩中第一(时间)和第三(积分)个条件,那么可以就可以构造: select * from tablename where 时间 = 当天 and 积分 = 数值;的语句.要想更灵活些,可以在表单中把逻辑运算符也做成select选择框让用户选择就可以构造出各种sql语句
$sql="select * from tablename where 1=1"; if(时间条件不为空){ $sql.=" and 时间=你输入的时间条件"; } if(关键字条件不为空){ $sql.=" and 关键字=你输入的关键字"; } if(积分条件不为空){ $sql.=" and 积分=你输入的积分"; } 这样这个sql语句就构建成了。
select * from tablename where 时间 = 当天 and 积分 = 数值;的语句.要想更灵活些,可以在表单中把逻辑运算符也做成select选择框让用户选择就可以构造出各种sql语句
if(时间条件不为空){
$sql.=" and 时间=你输入的时间条件";
}
if(关键字条件不为空){
$sql.=" and 关键字=你输入的关键字";
}
if(积分条件不为空){
$sql.=" and 积分=你输入的积分";
}
这样这个sql语句就构建成了。
{
switch ($search_time)
{
case 1:
$search2="and 时间字段 BETWEEN CURDATE() and DATE_ADD(CURDATE(),INTERVAL 1 DAY)";
$search2_value = "&search_time=$search_time";
break;
case 2:
$search2="and 时间字段 BETWEEN CURDATE() and DATE_ADD(CURDATE(),INTERVAL 3 DAY)";
$search2_value = "&search_time=$search_time";
break;
default:
$search2="";
$search2_value = "";
break;
}
}
else
{
$search2 = "";
$search2_value = "";
}if($search_key<>"")
{
$search2 = "and (字段名称)like '%$search_key%'";
$search2_value = "";
}
else
{
$search2 = "";
$search2_value = "";
}
if($search_number<>"")
{
$search3 = "and (积分字段)<$search_number";
$search3_value = "&search_number=$search_number";
}
else
{
$search3 = "";
$search3_value = "";
}
$sql = "select * from table where id<>'' $search1 $search2 $search3 ";
$search1_value等类似命名的则放在分页里面"search_more.php?page=$page$search1_value$search2_value$search3_value";
写得这么详细你不清楚的话,那真的是没有办法了
if($search_time<>"")
{
switch ($search_time)
{
case 1:
$search1="and 时间字段 BETWEEN CURDATE() and DATE_ADD(CURDATE(),INTERVAL 1 DAY)";
$search1_value = "&search_time=$search_time";
break;
case 2:
$search1="and 时间字段 BETWEEN CURDATE() and DATE_ADD(CURDATE(),INTERVAL 3 DAY)";
$search1_value = "&search_time=$search_time";
break;
default:
$search1="";
$search1_value = "";
break;
}
}
else
{
$search1 = "";
$search1_value = "";
}