![]() |
|
首页 │ Apache │ Linux│ Java│ MySQL│ 注册│帮助 | |||
[php]
$q="select f.ffusername,f.object,f.click,f.photo,f.photopath,u.username,u.user_gender,u.user_birthday,(TO_DAYS(now())-TO_DAYS(FROM_UNIXTIME(u.user_birthday*86400+1,'%Y%m%d')))/365 as birth from ".$user_prefix."_user_profile1 as f LEFT JOIN ".$user_prefix."_users as u on u.username=f.ffusername where u.user_birthday!='999999' ";
$str2="";
if($sexs>0 AND $sexs<3){
$str2=$str2." and u.user_gender='$sexs'";
}
if($photos>1){
$str2=$str2." and f.photo=1";
}
if($age1>=1){
if($age2>$age1){
$str2.=" and birth between '$age1' and '$age2'";
}
elseif(($age2<=$age1)||$age1=""||$age2=""||$age1<=0||$age2<=0){
echo ""._UNEXPECTAGE."";
echo "
";
}
}
$q=$q.$str2;
$q.=" order by f.click desc limit $min,$offset";
[/php]
以下是echo出来的查询语句:
[php]
select f.ffusername,f.object,f.click,f.photo,f.photopath,u.username,u.user_gender,u.user_birthday,(TO_DAYS(now())-TO_DAYS(FROM_UNIXTIME(u.user_birthday*86400+1,'%Y%m%d')))/365 as birth from nuke_user_profile1 as f LEFT JOIN nuke_users as u on u.username=f.ffusername where u.user_birthday!='999999' and birth between '18' and '35' order by f.click desc limit 0,20
[/php]
目前就是是查询没有结果,问题主要集中年龄范围的查找,即在user_birthday的转换上有问题,因为user_birthday是一个类似UNIX时间戳的值(比如19770418的在user_birthday上值为2664),必须要转换为标准时间格式才能被TO_DAYS()使用,我看了很久,也翻了一些资料,死活没看出来,请大家帮忙看看问题该怎么解决,不胜感激!!

