PHP提取Mysql数据时排序问题

<?php$select="SELECT*FROMseven_tirebrandsORDERBYs_tidASC";$query=mysql_query($select)... <?php
$select = "SELECT * FROM seven_tirebrands ORDER BY s_tid ASC";
$query = mysql_query($select) or die(mysql_errno());
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") {
echo "<a href=\"#\">".$show["name"]."(".$num.")</a> ";
}
}
}
?>

echo出来的结果,想要以$num来排序~~
展开
 我来答
小鱼不爱吃猫咪
推荐于2016-10-17
知道答主
回答量:27
采纳率:0%
帮助的人:23.6万
展开全部
在while循环中 将这部分:echo "<a href=\"#\">".$show["name"]."(".$num.")</a> ";

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

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

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

希望可以帮到你。
追问
不好意思,我看的有点懵~也没太理解。我比较菜菜。能不能麻烦把这段写出来。我按着你说的写出来但是echo结果不对。也不知哪错了。麻烦了
追答
luoting2762  说的跟我的是一个意思,只是他把排序部分写了出来
我觉得对数组排序部分对你不难,也不知道你习惯哪种排序
所以在将数据库搜索出的数据组成数组后的排序也就一笔带过了
因为对于数组的排序有很多种实现方式 比如:冒泡,选择排序等【这个你可以根据时间情况选择】

建议看下冒泡和选择排序
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-10-11
展开全部
<?php
$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<count($a);$i++)
{
for($j=0;$j<count($a);$j++)
{
if($a[$i]['num']<$a[$j]['num'])
{
$tmp=$a[$i];
$a[$i]=$a[$j];
$a[$j]=$tmp;
}
}
}
foreach($a as $v)//输出
{
echo "<a href=\"#\">".$v["name"]."(".$v["num"].")</a> ";
}
?>
这样大概可以,你试试看吧
追问

灰常感谢。基本上已经可以实现。就是会输出一个空值。我在找是哪里输出的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luoting2762
2012-10-11 · TA获得超过643个赞
知道小有建树答主
回答量:337
采纳率:0%
帮助的人:237万
展开全部
什么排序问题?你在写SQL的时候,可以用order by关键字进行排序,默认是升序排序,如果想要降序排序,那么写成:order by col1 desc
不知道你问的是这个问题不。
追问
刚才问题没出来。现在出来了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b32c608
2012-10-12 · 贡献了超过171个回答
知道答主
回答量:171
采纳率:0%
帮助的人:50万
展开全部
order by
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式