PHP如果第一个结果是分组的MySQL数组

时间:2014-03-12 21:18:53

标签: php

我正在从MySQL中选择一个记录集,该记录集使用$group_date按release_date分组。 我需要做的是计算它是$group_date的第一次迭代并输出不同的HTML,如果它不是$group_date的第一次迭代。

不同的HTML就像在下面的代码中输出第一个echo '</div>';一样简单。

我尝试了$i=1 and $i++的各种变体,但我似乎无法让它工作,因为我发现的所有代码示例都是基于正常结果,而不是在它们被分组后。

<?php
 while( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
 if ($group_date !== substr($row["release_date"], 0, 10)) {
 $group_date = substr($row["release_date"], 0, 10);
 echo '</div>';
echo $title == "" ? "" : $title;
$title = "";
echo '<div class="divide-bottom">';
echo '<h3>' . $group_date . '</h3>';
?>

3 个答案:

答案 0 :(得分:0)

试试

   if ($group_date != substr($row["release_date"], 0, 10)) {

答案 1 :(得分:0)

$iteration = 0;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $release_date = substr($row["release_date"], 0, 10);

    if ($group_date == $releaseDate && $iteration == 0) {
        echo '<h3>' . $group_date . '</h3>';
        $iteration++;
    }

    echo '<div>' . $title . '</div>';
    echo '<div class="divide-bottom">';
}

答案 2 :(得分:0)

更新 - 这似乎对我有用:

<?php
$iteration = 0;
 while( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
 if ($group_date !== substr($row["release_date"], 0, 10)) {
 $group_date = substr($row["release_date"], 0, 10);

 if ($iteration == 0) {
echo $title == "" ? "" : $title;
$title = "";
echo '<div class="divide-bottom">';
echo '<h3>' . $group_date . '</h3>';
$iteration++;
}
else {
     echo '</div>';
echo $title == "" ? "" : $title;
$title = "";
echo '<div class="divide-bottom">';
echo '<h3>' . $group_date . '</h3>';  
}
?>