我的Group By条款有什么问题?

时间:2014-01-17 04:51:38

标签: php sql

很抱歉这个愚蠢的问题,但我无法弄清楚为什么我的数据会显示两次。

这是一个非常简单的查询。 DB table calendar_px目前只有三行和四个字段,包括一个用于日期,另一个用于年份,另一个(Brief)包含一些简短内容。

因此,如果您访问MySite / Calendar / January_1页面,您应该会看到DB表中具有匹配日期(Date2)字段(January_1)的所有年份和摘要。我的练习表有三行:

1969 | So and so was born.
1969 | A volcano erupted.
1970 | They released a new song.

我的代码完美地显示了信息 - 除了它显示两次。我已经按照每个字段名称对其进行了分组,包括和不使用Cal2。扩展,没有任何作用。看起来我一定犯了一个非常简单的错误,但我不明白。

这是我的查询...

    $stm = $pdo->prepare("SELECT Cal2.N, Cal2.Date2, Cal2.Year, Cal2.Brief
        FROM calendar_px Cal2
        WHERE Cal2.Date2 = :MyURL
        GROUP BY Cal2.Brief");
    $stm->execute(array(
        'MyURL'=>$MyURL
    ));

    break;
}

while ($row = $stm->fetch())
{
    $Year = $row['Year'];
    $Brief[] = ''.$Year.' – '.$row['Brief'].'';
}

这就是我在显示页面上的内容......

echo join( $Brief, '<br>' );

2 个答案:

答案 0 :(得分:0)

试试这个:

$rows= $stm->fetchAll();
while ($rows as $row)
{
    $Year = $row['Year'];
    $Brief[] = ''.$Year.' &#8211; '.$row['Brief'].'';
}

答案 1 :(得分:0)

Yikes,我知道我做了些蠢事,我终于明白了。我以某种方式将文件包含在查询中两次。我必须记住使用require_once而不是简单的要求。 Mods:请删除此主题,除非您认为任何人都可以从中学到一些东西。 ;)