需要在查询中格式化PHP结果

时间:2014-09-16 11:53:29

标签: php sorting filtering limit

我是猴子看猴子做程序员。所以在我这个年纪到老去学习任何新东西。我确实需要一些建议和帮助!

我需要从表中提取数据。 (参见下面的表格字段)

  • ID
  • 标题
  • DatePosted
  • 描述
  • 图片

(我可以使用

完成并将它们完美地列在彼此之下)
<?php 
    try {
        $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
        $conn->exec("SET CHARACTER SET utf8");// Sets encoding UTF-8
        $sql = "select * from TableNews Order by DatePosted ASC LIMIT 5 " ;
        $result = $conn->query($sql);
        if($result !== false) {
            $cols = $result->columnCount();
            foreach($result as $row) {
                echo $row['Title'] . "\n";
                echo $row['DatePosted'] . "\n";
            } 
        }
        $conn = null;
    } catch(PDOException $e) {
        echo $e->getMessage();
    }
?>

这很完美!

这是我需要建议的地方。

在我的结果中,我需要出现的第一张唱片只列出标题和图片 anbd剩余的4条记录仅显示-Title -DatePosted -Description。

很多像这里包含的新闻图片

谢谢

screen capture i took from Fox News

2 个答案:

答案 0 :(得分:1)

<?php try {
    $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
    $conn->exec("SET CHARACTER SET utf8");// Sets encoding UTF-8
    $sql = "select * from TableNews Order by DatePosted ASC LIMIT 5 " ;
    $result = $conn->query($sql);
    if($result !== false) {
    $cols = $result->columnCount();
    $rowcount = 0;
    foreach($result as $row) {
    if ($rowcount==0) {
        echo $row['picture']."<br>";
        $rowcount++;
    } else {
        echo $row['Title']." - ".$row['DatePosted'];
    }
    if ($rowcount==4) {
        $rowcount=0;
    }    

    } 
    }
    $conn = null;
    }
    catch(PDOException $e) {
    echo $e->getMessage();
    }
    ?>

这样的地方你最初将计数器设置为零然后为每一行增加它以显示当它击中你的第四行然后将计数器重置为零以便它重新发布图片。 (只有在你计划每5个显示器使用多个标题图像时才需要这个最后阶段,否则你可以删除带有$ rowcount == 4的第二个iff语句

答案 1 :(得分:1)

这是一个示例,可帮助您找出您确切需要的内容:(如果您的代码仅包含php,您只需使用<?php ?>一次)

<?php
try {
    $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
    $conn->exec("SET CHARACTER SET utf8");// Sets encoding UTF-8
    $sql = "select * from TableNews Order by DatePosted ASC LIMIT 5 " ;
    $result = $conn->query($sql);
    if($result !== false) {
        $cols = $result->columnCount();
        foreach($result as $key => $row) {
            if ($key === 0)
               $row['Picture'];
            echo $row['Title'];
            echo $row['DatePosted'];
        }
    }
    $conn = null;
} catch(PDOException $e) {
    echo $e->getMessage();
}
?>
相关问题