PHP数据排序的问题,如何通过二次读取出来的数据进行排序

这是我模板上的源码<!--{if$appraise_list}--><!--{loop$appraise_list$key$appraise}--><li>{=appra... 这是我模板上的源码
<!--{if $appraise_list}-->
<!--{loop $appraise_list $key $appraise}-->
<li>{=appraise_num($appraise['id'],1)}· {$appraise['name']}</li>
<!--{/loop}-->
<!--{/if}-->

这个$appraise_list是PHP页面数据读取出来的数组,是一组商家的信息
现在把他循环到网页上,是7条商家信息,然后appraise_num()这个函数是根据之前读取出来的数据里面的id,去另外一张表里面读取数据,然后和这个id相关的有多少条数据,
比如说这个商家有20条评价信息,就返回个20,
然后我想这7条商家信息根据这个评价信息的数量进行排序,请问下怎么做好,

我能想到的就是笨点的办法,在商家这个表里面新建个字段,然后每次有新的评价就把这个字段的值加1,
然后根据这个新增的字段排序,

或者有没有 办法在sql语句里面直接进行排序?

这是我读取商家信息的sql
$appraise_sql = "SELECT id,name FROM $shop_table WHERE audit = 1 AND ctid = ".$ctid." AND levelid > 0 ORDER BY orderid DESC, levelid DESC LIMIT 0 , 7";

这是读取商家评价数量的函数
function appraise_num($shopid,$grade){
global $review_table;
$appraise_sql = "SELECT id FROM $review_table WHERE shopid = $shopid and grade = $grade";
$appraise_query = mysql_query($appraise_sql);
$appraise_num = mysql_num_rows($appraise_query);
return $appraise_num;
}

求高手帮忙想想办法
展开
 我来答
老侯说编程
2013-09-12 · 超过14用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:31.5万
展开全部
给你一个联合查询的例子

SELECT m.id as mid , m.email,count(*) as Number FROM `db_members` m , db_goods g WHERE g.uid = m.id GROUP BY mid ORDER BY Number DESC
TableDI
2024-07-18 广告
在上海悉息信息科技有限公司,我们深知Excel在数据处理中的重要作用。在Excel中引用不同工作表(sheet)的数据是常见的操作,这有助于整合和分析跨多个工作表的信息。通过在工作表名称前加上感叹号“!”,您可以轻松地引用其他工作表中的数据... 点击进入详情页
本回答由TableDI提供
帐号已注销
2013-09-11 · TA获得超过174个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:180万
展开全部
重写个函数 联合查询与分组查询结合起来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式