欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

搜索排序问题

程序员文章站 2022-04-13 17:28:10
...
交友网站搜索会员怎样使没形象照的会员排在有形象照会员后面.在最后面我加上了order by avatarflag desc语句.搜索时报错:Parse error: syntax error, unexpected T_STRING, expecting ')' in E:\PHPnow-1.5.6\htdocs\source\service\index\service.user.php on line 147
报错行就是最后一行:order by avatarflag desc.谁能帮忙看下上面的错在哪? 搜索代码如下:
public function validSearch( )
{
$args = array( );
$countwhere = "";
$s_searchtype = XRequest::getargs( "s_searchtype" );
$s_sex = XRequest::getint( "s_sex" );
$s_sage = XRequest::getint( "s_sage" );
$s_eage = XRequest::getint( "s_eage" );
$s_dist1 = XRequest::getint( "s_dist1" );
$s_dist2 = XRequest::getint( "s_dist2" );
$s_dist3 = XRequest::getint( "s_dist3" );
$s_lovesort = XRequest::getint( "s_lovesort" );
$s_sheight = XRequest::getint( "s_sheight" );
$s_eheight = XRequest::getint( "s_eheight" );
$s_ssalary = XRequest::getint( "s_ssalary" );
$s_esalary = XRequest::getint( "s_esalary" );
$s_sedu = XRequest::getint( "s_sedu" );
$s_eedu = XRequest::getint( "s_eedu" );
if ( $s_searchtype == "adv" )
{
$s_marry = XRequest::getcomints( "s_marry" );
$s_havechild = XRequest::getcomints( "s_havechild" );
}
else
{
$s_marry = XRequest::getargs( "s_marry" );
$s_havechild = XRequest::getargs( "s_havechild" );
}
$s_house = XRequest::getint( "s_house" );
$s_car = XRequest::getint( "s_car" );
$s_avatar = XRequest::getint( "s_avatar" );
$args = array(
"s_sex" => $s_sex,
"s_sage" => $s_sage,
"s_eage" => $s_eage,
"s_dist1" => $s_dist1,
"s_dist2" => $s_dist2,
"s_dist3" => $s_dist3,
"s_lovesort" => $s_lovesort,
"s_sheight" => $s_sheight,
"s_eheight" => $s_eheight,
"s_ssalary" => $s_ssalary,
"s_esalary" => $s_esalary,
"s_sedu" => $s_sedu,
"s_eedu" => $s_eedu,
"s_marry" => $s_marry,
"s_havechild" => $s_havechild,
"s_house" => $s_house,
"s_car" => $s_car,
"s_avatar" => $s_avatar
);
$sql = "";
if ( 0 {
$sql .= " AND v.gender='".$s_sex."'";
$countwhere .= " AND ps.gender='".$s_sex."'";
}
if ( 0 {
$year = date( "Y", time( ) );
$sageline = $year - $s_eage;
$eageline = $year - $s_sage;
$sql .= " AND p.ageyear >= ".$sageline." AND p.ageyear $countwhere .= " AND ps.ageyear >= ".$sageline." AND ps.ageyear }
if ( 0 {
$sql .= " AND p.provinceid='".$s_dist1."'";
$countwhere .= " AND ps.provinceid='".$s_dist1."'";
}
if ( 0 {
$sql .= " AND p.cityid='".$s_dist2."'";
$countwhere .= " AND ps.cityid='".$s_dist2."'";
}
if ( 0 {
$sql .= " AND p.distid='".$s_dist3."'";
$countwhere .= " AND ps.distid='".$s_dist3."'";
}
if ( 0 {
$sql .= " AND p.lovesort='".$s_lovesort."'";
$countwhere .= " AND ps.lovesort='".$s_lovesort."'";
}
if ( 0 {
$sql .= " AND p.height >= ".$s_sheight." AND p.height $countwhere .= " AND ps.height >= ".$s_sheight." AND ps.height }
if ( 0 {
$sql .= " AND p.salary >= ".$s_ssalary." AND p.salary $countwhere .= " AND ps.salary >= ".$s_ssalary." AND ps.salary }
if ( 0 {
$sql .= " AND p.education >= ".$s_sedu." AND p.education $countwhere .= " AND ps.education >= ".$s_sedu." AND ps.education }
if ( TRUE === XValid::iscomchar( $s_marry ) )
{
$sql .= " AND p.marrystatus IN (".$s_marry.")";
$countwhere .= " AND ps.marry IN (".$s_marry.")";
}
if ( TRUE === XValid::iscomchar( $s_havechild ) )
{
$sql .= " AND p.childrenstatus IN (".$s_havechild.")";
$countwhere .= " AND ps.child IN (".$s_havechild.")";
}
if ( 0 {
$sql .= " AND p.housing='".$s_house."'";
$countwhere .= " AND ps.house='".$s_house."'";
}
if ( 0 {
$sql .= " AND p.caring='".$s_car."'";
$countwhere .= " AND ps.car='".$s_car."'";
}
if ( $s_avatar == 1 )
{
$sql .= " AND v.avatar != '' AND v.avatarflag = '1'";
$countwhere .= " AND ps.avatar='1'";
}

return array(
$sql,
$countwhere,
$args
order by avatarflag desc
);

}

回复讨论(解决方案)

代码调试中检查一下实际的SQL语句是什么。

if ( $s_avatar == 1 )
{
$sql .= " AND v.avatar != '' AND v.avatarflag = '1'";
$countwhere .= " AND ps.avatar='1'";
}

只有这个条件满足的时候,才有avatarflag
order by avatarflag , 是不是要加上别名:v.

最好把完整的sql语句打出来,看看就知道了。

帮忙看下这个程序哪里错了.网站运行时报错:Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting T_STRING or T_VARIABLE or '$' in E:\PHPnow-1.5.6\htdocs\source\action\index\action.user.php on line 51
第51行代码是unset ("service") ;
代码如下:
private function _unset( )
{
unset ("service") ;
}

private function _getListItems( )

相关标签: 搜索排序问题