php搜索和排序功能,搜索排序问题

交友网站搜索会员怎样使没形象照的会员排在有形象照会员后面.在最后面我加上了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 < $s_sex )

{

$sql .= " AND v.gender='".$s_sex."'";

$countwhere .= " AND ps.gender='".$s_sex."'";

}

if ( 0 < $s_sage && 0 < $s_eage )

{

$year = date( "Y", time( ) );

$sageline = $year - $s_eage;

$eageline = $year - $s_sage;

$sql .= " AND p.ageyear >= ".$sageline." AND p.ageyear <= {$eageline}";

$countwhere .= " AND ps.ageyear >= ".$sageline." AND ps.ageyear <= {$eageline}";

}

if ( 0 < $s_dist1 )

{

$sql .= " AND p.provinceid='".$s_dist1."'";

$countwhere .= " AND ps.provinceid='".$s_dist1."'";

}

if ( 0 < $s_dist2 )

{

$sql .= " AND p.cityid='".$s_dist2."'";

$countwhere .= " AND ps.cityid='".$s_dist2."'";

}

if ( 0 < $s_dist3 )

{

$sql .= " AND p.distid='".$s_dist3."'";

$countwhere .= " AND ps.distid='".$s_dist3."'";

}

if ( 0 < $s_lovesort )

{

$sql .= " AND p.lovesort='".$s_lovesort."'";

$countwhere .= " AND ps.lovesort='".$s_lovesort."'";

}

if ( 0 < $s_sheight && 0 < $s_eheight )

{

$sql .= " AND p.height >= ".$s_sheight." AND p.height <= {$s_eheight}";

$countwhere .= " AND ps.height >= ".$s_sheight." AND ps.height <= {$s_eheight}";

}

if ( 0 < $s_ssalary && 0 < $s_esalary )

{

$sql .= " AND p.salary >= ".$s_ssalary." AND p.salary <= {$s_esalary}";

$countwhere .= " AND ps.salary >= ".$s_ssalary." AND ps.salary <= {$s_esalary}";

}

if ( 0 < $s_sedu && 0 < $s_eedu )

{

$sql .= " AND p.education >= ".$s_sedu." AND p.education <= {$s_eedu}";

$countwhere .= " AND ps.education >= ".$s_sedu." AND ps.education <= {$s_eedu}";

}

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 < $s_house )

{

$sql .= " AND p.housing='".$s_house."'";

$countwhere .= " AND ps.house='".$s_house."'";

}

if ( 0 < $s_car )

{

$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( )

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值