gpt4 book ai didi

php - 在 While 循环中排序记录

转载 作者:行者123 更新时间:2023-11-29 05:32:15 25 4
gpt4 key购买 nike

这是问题所在,我不确定如何解决它..假设我有这样的事情:

SELECT news_key FROM tblNews (WHERE news_key>100);
while ($row = mysql_fetch_array($rid)) {
$key=$row['news_key'];

SELECT articles from tblMain WHERE news_key=$key;
while ($row2 = mysql_fetch_array($rid2)) {
echo ($row['articles']);
}
}

现在假设我想按受欢迎程度对文章进行排序,所以我可以将我的第二个查询更改为这样...

         SELECT articles, popularity from tblMain WHERE 
news_key=$key ORDER BY popularity DESC;

但现在这行不通了……因为它只会在第一个循环找到记录时获取记录。另外,我在这里做了一个非常简单的说明,我知道在第一个查询中连接表会这样做,但我现实生活中的第一个查询示例有很多计数和分组,所以我担心这不是一个选项.我还应该提到我涉及分页,因此每次选择页面时都会重新查询第一个查询...

有什么建议吗?

最佳答案

假设您不想进行连接(无论出于何种原因,如果您担心锁定表或编写过于复杂的 SQL),您可以将第一个查询中的键加载到一个数组中,对数组进行排序,然后遍历数组以运行第二个查询:

// SELECT news_key FROM tblNews (WHERE news_key>100);
// Execute query.
$keysArray = array();
while ($row = mysql_fetch_array($rid)) {
$keysArray[] =$row['news_key'];
}
arsort($keysArray);
foreach ($keysArray as $key) {
// SELECT articles from tblMain WHERE news_key=$key;
// Execute query.
while ($row2 = mysql_fetch_array($rid2)) {
echo ($row['articles']);
}

关于php - 在 While 循环中排序记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13751519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com