使用符合要求的php显示数据库中的数据

时间:2012-04-21 20:48:53

标签: php mysql html json

我正在设计一个来自我制作的压延机的事件。我正在使用数据库中的相同数据,但要匹配特定的日期和时间。

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

    $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上的一次返回。

    老实说,我不知道从这里可以去哪里。我输了。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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 (...)声明。