首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MySQL和PHP进行非标准排序和导航

使用MySQL和PHP进行非标准排序和导航
EN

Stack Overflow用户
提问于 2013-02-21 11:36:25
回答 1查看 209关注 0票数 0

我试图对一本工程杂志的API提供的信息进行分类。我已将下列信息摘录到一个表格中:

代码语言:javascript
复制
ID                 (integer),
Journal Entry Name (Text),
Description        (Text),
Page Length        (integer),
Has Media          (boolean)

每个“日记条目”只有一个与其相关的ID。每个ID还具有API不返回的其他特性,但我想使用这些特性进行排序。它们是:

  • 类别(如经济学,数学,生物学。每个ID可以有多个类别)
  • 布尔值(比如需要特殊的订阅)

我创建了第二个表格,格式如下:

代码语言:javascript
复制
ID       (integer),
Category (text),
Boolean1 (bool),
Boolean2 (bool),
Boolean3 (bool)

由于每个ID可以有多个类别,因此当发生这种情况时,将向此表中添加另一行。任何给定的行都只有一个ID和一个类别。

我想做的是:

  • 当涉及到时,能够找到前十大类
    • 最高分录(ID)计数
    • 最高总页数
    • “Highest”布尔值为真的最高日记条目计数

  • 创建一种像“分页”这样的导航方法,其中每一页都显示上述前十名的第九个结果。
    • 因此,如果我选择最高日志条目计数方法,第一页将显示in、名称和类别中具有最高计数的所有日志条目的描述。

我的计划是创建一个新的表,其中数字1到10位于第一列,然后用前十大类填充第二列。然后,我可以使用一个类似于分页的进程,在这个过程中,第n页只显示来自原始值的相应类别的值。然而,我似乎无法进入这十大列表/矩阵,也不知道是否有更好的方法。

不幸的是,我不是一个MySQL或PHP编码器的交易,并得到了这么多到目前为止,很多谷歌。我已经完全找不到像我想要的导航方法的任何指南。由于我不知道合适的术语,我只是尝试随机搜索谷歌在这一点。

这是最好的办法吗?还是创建第三张表格更好呢?是否有更简单的方法可以使用我已经编写的PHP和MySQL代码来完成这个任务呢?

EN

回答 1

Stack Overflow用户

发布于 2013-02-21 12:59:02

我不确定我真的理解您在这里要做什么,但我最好的猜测是,您可能希望将两个初始表组合在一起,并将类别设置为一个集合,而不是一个单独的术语,这样您就可以在每个唯一ID中有一个条目。

然后,你只需要根据需要为你的十大发现中的每一个写电话。由于每个id可以有一个未知的类别数,我将从限制为10开始,然后处理从顶部匹配开始的返回,抓取其类别,如果有10次以上抓取前10次,如果有少于10次抓取,更新您正在寻找的数量(如果有4次,那么现在您正在寻找6),然后继续进行下一次最佳匹配。

也许是这样的:

代码语言:javascript
复制
categories = null;
$delimeter = ',';
$count = 1;
$top10 = array();

$result = mysql_query("
SELECT *
FROM table_name
ORDER BY page_length DESC
LIMIT 10");

while($row = mysql_fetch_array($result)  && $count <=10)
  {
  $categories = $row['categories'];
  $id = $row['id'];
  $splitcontents = explode($delimeter, $catagories);
  foreach($splitcontents as $category){
     if (!in_array($catagory,$top10)){
        $top10[$count] = array(
            'category'=>$category,
            'journal_id'=>$id
        );
        $count++;
      }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15001284

复制
相关文章

相似问题

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