![]() |
|
首页 │ Apache │ Linux│ Java│ MySQL│ 注册│帮助 | |||
[PHP]
$areaArr = array("id" => array()
, "pId" => array()
, "name" => array()
, "isDisable" => array()
, "isDefault" => array()
, "isSub" => array()
, "link" => array()
, "topicNum" => array()
);
$sql = "select a.* , count(b.id) as topicNum
from ( ". $areaTbl ." as a left join ". $topicContentTbl ." as b on b.area = a.id and b.state = 1 )
where a.isDisable <> 1
group by a.id
order by pId asc , id asc
";
$rs_item = $conn->Execute($sql) or die($conn->errorMsg());
//查询数据库并写入数组
while(!$rs_item->EOF)
{
$areaArr["id"][] = $rs_item->fields("id");
$areaArr["pId"][] = $rs_item->fields("pId");
$areaArr["name"][] = StrHtml($rs_item->fields("name"));
$areaArr["isDisable"][] = $rs_item->fields("isDisable");
$areaArr["isDefault"][] = $rs_item->fields("isDefault");
$areaArr["isSub"][] = $rs_item->fields("isSub");
$areaArr["link"][] = StrHtml($rs_item->fields("link"));
$areaArr["topicNum"][] = $rs_item->fields("topicNum");
$rs_item->MoveNext();
}
$rs_item->Close();
//显示排序前的数组
for($i = 0 ; $i < count($areaArr["id"]) ; $i++)
{
echo $areaArr["id"][$i] ." ". $areaArr["name"][$i] ." ". $areaArr["topicNum"][$i] ."
";
}
//排序数组
array_multisort($areaArr["topicNum"] , SORT_NUMERIC , SORT_DESC);
echo "
";
//显示排序后的数组
for($i = 0 ; $i < count($areaArr["id"]) ; $i++)
{
echo $areaArr["id"][$i] ." ". $areaArr["name"][$i] ." ". $areaArr["topicNum"][$i] ."
";
}
[/PHP]
执行结果为:
1 北京 122
2 上海 122
3 天津 36
4 重庆 10
5 河北 3
6 山西 4
1 北京 122
2 上海 122
3 天津 36
4 重庆 10
5 河北 4
6 山西 3
本来应该是:
1 北京 122
2 上海 122
3 天津 36
4 重庆 10
5 河北 3
6 山西 4
1 北京 122
2 上海 122
3 天津 36
4 重庆 10
6 山西 4
5 河北 3
这是为什么呀,请教高手.

