搜索排序问题

WBOY
WBOYoriginal
2016-06-23 14:38:58971parcourir

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn