使用PDO从mysql中提取多行数据并在网页表格式中进行格式化

时间:2016-06-10 07:22:01

标签: php mysql pdo

我正在努力从mysql数据库中提取数据并将其呈现在网页上的表格中。我很确定我错过了一些简单的东西,但我对这些东西不熟悉并且无法弄清楚出了什么问题。希望有人能发现我的愚蠢错误并让我知道!

代码打印表格中的标题信息确定但我没有行。

当我发现它时,我计划剥离<html><head><body>标记,并在其他网页上使用包含。

SteveW

以下代码

<!DOCTYPE html>
<html>
<?php
//database login info
require_once 'dbconfig.php';



try {
//connect to batabase
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
//check connection to database. It works OK
    echo "Connected to database $dbname at $host successfully. <br>";

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = ("SELECT `name`, `comment`, `entered` FROM `comment`");  
        $result = $pdo->query($sql);
    }
    //connection error
    catch (PDOException $pe) {
    die("Could not connect to the database $dbname :" . $pe->getMessage());
    }
?>
<head></head>
<body>
    <div id="container">
        <h1>Comments</h1>
        <table width ="100%" border ="1">
        <thead>
            <tr>
                <td>Name</td>
                <td>Comment</td>
                <td>Entered</td>
            </tr>
        </thead>
        <tbody>
        <?php while ($row = $result->FetchALL(PDO::FETCH_ASSOC)) {

            echo
            "<tr>   <td>".$row['comment']." </td>                   
                    <td>".$row['name']." </td>
                    <td>".$row['entered']." </td>
            </tr>\n";
            }
        $pdo->close;
        ?>
        </tbody>
        </table>    
</body>         
</html> 

1 个答案:

答案 0 :(得分:1)

<强> $pdo->query()

  

返回PDOStatement对象,或者失败时返回FALSE。

S0 无需获取两次 $result->FetchALL(PDO::FETCH_ASSOC)

只需使用foreach循环

 foreach ($result as $row) {
           echo
            "<tr>   <td>".$row['comment']." </td>                   
                    <td>".$row['name']." </td>
                    <td>".$row['entered']." </td>
            </tr>\n";
            }