PHP SQL在Foreach()中合并记录

PHP SQL在Foreach()中合并记录,php,sql,Php,Sql,当我在另一个页面上工作时,我会重新考虑这个问题,我想使用相同的概念。 显示当前从MSSQL服务器获得的输出 我有一张我们活动发生的地点信息表(姓名、地址等)。另外,我有一个计划的实际事件表(一个事件可能在一天内和/或多天内发生多次)。我用一个查询连接这些表(如下所示) 我想做的是以某种方式组合这些数组,这样就不会每次重复场馆信息,而是显示每个日期/时间 我试着用数组的方式输入,但是找不出合适的多维度。我只是粘贴我希望它的显示方式,因为这就是它的最终结果 while ($row = $query-

当我在另一个页面上工作时,我会重新考虑这个问题,我想使用相同的概念。 显示当前从MSSQL服务器获得的输出

我有一张我们活动发生的地点信息表(姓名、地址等)。另外,我有一个计划的实际事件表(一个事件可能在一天内和/或多天内发生多次)。我用一个查询连接这些表(如下所示)

我想做的是以某种方式组合这些数组,这样就不会每次重复场馆信息,而是显示每个日期/时间

我试着用数组的方式输入,但是找不出合适的多维度。我只是粘贴我希望它的显示方式,因为这就是它的最终结果

while ($row = $query->fetch(PDO::FETCH_NUM) ) {
    list($time,$place,$etc) = $row;
    // display formatted data
}
结果不一定是这样,但它应该能让我清楚地知道我在寻找什么

我不一定要创建一个新的数组。我只想而不是一遍又一遍地显示相同的信息

我想我可以做一些形式的比较,在
foreach()
中,类似于“if Location与previous Location相同”,但我还没有弄明白如何做(有没有办法通过执行
$location1=[Location]
$location2=[Location]来缓存先前的变量)

有一件事需要注意

这些示例没有不同的演讲者,但有时会有。我希望能够以某种方式访问演讲者。我假设我希望它绑定到实际事件


JJ

一种技巧:如果你有这样一个循环:

$row = $query->fetch();
do {
    list($time,$place,$etc) = $row;
    $row = $query->fetch(PDO::FETCH_NUM);
    if ($time != $row[0] && $place != $row[1] && $etc != $row[2]) {
        // display formatted data
    }
} while ($row);
请尝试以下方法:


我通常会通过创建一个二维数组来解决这样的问题,先按日期然后按ID索引,或者在您的情况下,先按ID然后按日期索引


循环事件(第一维度)然后打印出该事件的内容-在那里循环浏览该事件的日期,并将其打印为列表,如您的示例所示。

没有代码,可能是数据库模式,每个人都在猜测我更新了这个问题,不知道它是否会被掩埋,或者编辑是否会自动将其删除。因此,在这种情况下,第一个维度将是地点,第二维度将是日期?这是一个有趣的想法。我一直在尝试解决这个问题,我要么迷路了,要么我们不在同一页上。我正在将它设置为每个事件只显示一条记录(
如果($meeting!=$row[7])
)。我想要的是显示一次事件信息,但显示与该事件相关的所有日期(如我原始帖子的“我只想…”部分)。结果是我得到了你认为会发生的事情,还是我做了一些错误的事情?我不想在这个小评论中超过我的完整代码。
The Ark Church
    Contact:
        Alan & Joy Clayton
        450 Humble Tank Rd.
        Conroe, TX  77305
        (936) 756-1988
        info@thearkchurch.com
        http://www.thearkchurch.org
    Meetings:
        Tuesday, 2012-10-30 07:00 PM
        Wednesday, 2012-10-31 07:00 PM

Fellowship Of Faith Christian Center
    Contact:
        Michael & Joan Kalstrup
        18999 Hwy. 59
        Oakland, IA  51560
        (712) 482-3455
        ffcc@frontiernet.net
        http://www.fellowshipoffaith.cc
    Meetings:
        Tuesday, 2012-11-06 07:00 PM

Faith Family Church
    Contact:
        Michael & Barbara Cameneti
        8200 Freedom Ave NW
        Canton, OH  44720
        (330) 492-0925
        http://www.myfaithfamily.com
    Meetings:
        Wednesday, 2012-11-14 07:00 PM
while ($row = $query->fetch(PDO::FETCH_NUM) ) {
    list($time,$place,$etc) = $row;
    // display formatted data
}
$row = $query->fetch();
do {
    list($time,$place,$etc) = $row;
    $row = $query->fetch(PDO::FETCH_NUM);
    if ($time != $row[0] && $place != $row[1] && $etc != $row[2]) {
        // display formatted data
    }
} while ($row);