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来排序~~ 展开
$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来排序~~ 展开
4个回答
展开全部
在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"]不知道是否唯一,我假设是唯一的,如果不是可以将其更换为主键字段】
希望可以帮到你。
的输出先放到一个数组中 即:
$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> ";
}
?>
这样大概可以,你试试看吧
$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> ";
}
?>
这样大概可以,你试试看吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么排序问题?你在写SQL的时候,可以用order by关键字进行排序,默认是升序排序,如果想要降序排序,那么写成:order by col1 desc
不知道你问的是这个问题不。
不知道你问的是这个问题不。
追问
刚才问题没出来。现在出来了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
order by
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询