如何处理从Web SIte中的多个来源消耗大量数据

时间:2010-10-04 20:20:40

标签: php arrays multidimensional-array

这是一个“元”问题,我正在努力更好地理解我最近必须解决的一些难题。即使你没有准确地得到我在这里所要达到的东西,或者有太多的文字可供阅读,任何实际的输入都会受到赞赏并且可能很有用。

假设您的网站需要使用存储在数据库的多个表中的数据。这些数据需要以多种方式迭代,用于各种地方的计算等。

所以在一个页面上需要显示一个项目集合(来自一个db表),每个项目包含一个类别集合(来自另一个db表),每个类别包含一个或多个项目(来自另一个db表)什么是收集数据,组织数据并迭代显示数据的最佳方法是什么?

由于每个项目可以有一个或多个类别,每个类别可以有一个或多个项目(但项目对于特定类别是唯一的),组织最终产品的最佳方法是什么?

我在下面的示例中的目标是生成一个项目表,其中每个项目都有与其一起列出的关联类别,每个类别都有与其一起列出的相关项目,但我还需要汇总项目表中的数据以显示下一个到项目名称

A Project Name (43 items and 2 of them have errors!)
- category 1
    - item 1
    - item 2
- category 2
    - item 1

Another Project Name (12 items and no errors)
- category 1
    - item 1
- category 2
    - item 1

我所做的是从每个表中检索数据并将其粘贴到变量中。给我一些像:

var $projects = array("id" => 1, "proj_id" => 1, "name" => "aname");
var $categories = array("id" => 1, "cat_id" => 1234, "proj_id" => 1, "cat_name" => "acatname");
var $items = array("id" => 1, "item_id" => 1234, "location" => "katmandu");

然后我浏览了嵌套的foreach()循环中的变量,构建了我需要显示的行。

我遇到了困难,因为foreach()循环在构建2级深度(将类别与项目相关联)时可以正常工作但是当深度达到三级时它没有按预期工作( INCEPTION ..哈哈,无法抗拒)并尝试将项目添加到每个类别(而不是将所有项目添加到一个项目......首先或最后我不记得哪个)。此外,当数组的第三级存在某些内容时,您将如何将该数据相加,然后将其用于备份到正在构建的数组的顶层?

我想我可以构建一个大型的SQL查询,它为我做了所有事情并将所有内容放入一个数组中,通过将其展平来节省我的循环混乱,但是......好吧,这就是为什么我在这里问你们所有人。

所以,我想这个问题的核心是:你如何处理从不同的表中获取大量数据然后将它们组合在一起以便在计算中显示和使用?

2 个答案:

答案 0 :(得分:1)

听起来你想要使用SQL JOIN。考虑一下它们:

http://www.w3schools.com/sql/sql_join_left.asp

他们将从多个表中提取数据并对其进行汇总。它不会产生相当您正在寻找的东西,但它会产生一些您可以以不同方式使用的东西。

答案 1 :(得分:0)

Hadoop你要找的东西吗?