首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建指向原始文章的链接,PHP

如何创建指向原始文章的链接,PHP
EN

Stack Overflow用户
提问于 2016-01-20 14:16:19
回答 2查看 42关注 0票数 0

我有一个查询,它从数据库返回帖子,查询按类别分组文章,标题是指向原始帖子的链接。返回的帖子显示在类别页面上。

问题是,当显示文章标题并按类别分组时,我发现每个类别的帖子只有第一个post_id,而我的链接只返回每个类别中ID最低的第一个帖子或帖子。该链接将您带到原来的帖子。原始文章显示在一个名为“entries.php”的页面上。

示例:

Post1 id =1

Post2 id =2

Post3 id =3

上面的所有帖子都是按类别分组的,但如果我悬停在它们上面,它们都会因为某种原因而拾取Post1 id=1。我能做些什么来确保当我悬停在它们上面时每个id都被找到了吗?耽误您时间,实在对不起!

查询:

代码语言:javascript
复制
$query = "SELECT category, GROUP_CONCAT(DISTINCT title SEPARATOR '<br />') titles, post_id
        FROM categories, posts
        WHERE categories.category_id = posts.category_id 
        GROUP BY category";

        $result = mysqli_query($dbc, $query)
            or die('Error querying database.');

        while ($row = mysqli_fetch_array($result)){
            echo "<h2>".$row['category']."</h2>";
            echo '<a href="entries.php?id='.$row['post_id'].'">'.$row['titles'].'</a>';
            echo "<hr />";
        }
EN

回答 2

Stack Overflow用户

发布于 2016-01-20 14:22:33

您应该按post_id分组,也可以按You使用ORDER。

票数 0
EN

Stack Overflow用户

发布于 2016-01-20 14:27:57

您了解了SQL的GROUPing概念。如果您对category_id上的行进行分组,那么您实际上要告诉MySQL的是:无论存在多少行,我都希望每个category_id准确地排一行。在标准SQL中,只有在使用“Groupbycategory_id”时才允许“选择category_id”(以及诸如COUNT、MAX、MIN等聚合函数)。MySQL允许您更多地任意选择一次命中(它找到的第一次)。

您可能需要的是通过category_id订购,然后在php脚本中进行分组,如下所示

代码语言:javascript
复制
$prev_cat_id = null;
while ($row = mysqli_fetch_array($result)) {
    if ($prev_cat_id != $row['category_id']) {
        do stuff for next category
    } else {
        do stuff for next post in same category
    }
}
remember to do cleanup for last category
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34902448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档