PHP提取Mysql数据时排序问题

2025-01-03 17:36:55
推荐回答(4个)
回答1:

在while循环中 将这部分:echo "".$show["name"]."(".$num.") ";

的输出先放到一个数组中 即:
$arr[$show["s_tid"]]["name"] = $show["name"];
$arr[$show["s_tid"]]["num"] = $num;

在while 全部结束后:
将数组按照 num 值排序【这样比在while中好处理多了】
重新循环:
foreach($arr as $key => $value){
echo "".$value["name"]."(".$value["num"].") "
}

【注:$show["s_tid"]不知道是否唯一,我假设是唯一的,如果不是可以将其更换为主键字段】

希望可以帮到你。

回答2:

$select = "SELECT * FROM seven_tirebrands ORDER BY s_tid ASC";
$query = mysql_query($select) or die(mysql_errno());
$t=0;
while ($show = mysql_fetch_array($query)){
$s_tid = $show["s_tid"];
$count = mysql_query("SELECT COUNT(*) FROM seven_products WHERE s_tid = '$s_tid'");
while ($show1 = mysql_fetch_array($count)){
$num = $show1[0];
if ($num != "0") {
$a[$t]['num']=$num;//存入临时数组
$a[$t]['name']=$show['name'];
}

}
$t++;
}

//对临时数组排序
for($i=0;$i{
for($j=0;$j{
if($a[$i]['num']<$a[$j]['num'])
{
$tmp=$a[$i];
$a[$i]=$a[$j];
$a[$j]=$tmp;
}
}
}
foreach($a as $v)//输出
{
echo "".$v["name"]."(".$v["num"].") ";
}
?>
这样大概可以,你试试看吧

回答3:

什么排序问题?你在写SQL的时候,可以用order by关键字进行排序,默认是升序排序,如果想要降序排序,那么写成:order by col1 desc
不知道你问的是这个问题不。

回答4:

order by