1

我正在使用我制作的日历设计事件提要。我使用数据库中的相同数据,但要匹配特定的日期和时间。

  1. 我只希望一次显示 4 个事件(为什么我指定length < 4
  2. 如果数据库值为'showFeed'true,则仅显示这些行。
  3. 我希望它按日期时间显示,我对数据库中的每个值都有奇数的 id,这可能会使它们乱序。

我当前的代码:

$sql = "SELECT `title`, `time`, `start`, `showFeed` FROM calender WHERE length('column') > '0'";

$result = $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);

echo "<div class=\"eventfeed\">";
echo "<ul>";

foreach ($result as $row){

$show = $row['showFeed'];

if ($show == 1 && length.$result < 4){
    echo "<li>";
    echo $row['title']. "<br />";
    echo $row['start'].' '.$row['time'];
    echo "</li>";
} 
else {

    return false;
}
}

echo "</ul>";
echo "</div>";

$dbh = null;

echo json_encode($return);

?>

我从数据库中得到结果并且没有错误,但我只看到一个返回$results.

老实说,我不知道从这里还能去哪里。我迷路了。

4

2 回答 2

1

我不知道这是否是您的实际代码,但您应该通过 $result.length 而不是相反的方式确定数组的长度。

此外,您可以在查询结束时使用“LIMIT 4”来限制查询中的结果数量。这样 MySQL 只返回 4 个结果,您不必担心代码中的这一点,只需打印所有内容。

于 2012-04-21T20:55:59.590 回答
1

对于 1+.2.+3。修改您的查询SELECT title, time, start, showFeed FROM calender WHERE length('column') > '0' and showFeed=1 and time<current_timestamp ORDER BY time DESC LIMIT 0,3并删除您的if (...)语句。

于 2012-04-21T20:59:43.300 回答