@ PHP

CRUD:結果セットの整形と表示

index.php は products テーブルの内容をテーブルに整形して表示するためのソースコードです。

結果セットを取得するのは、prepare() / execute() の役割です。

ここではプレイスホルダーを利用していないので、bindValue メソッドの記述はありませんが、必要に応じて bindValue メソッドを利用することができます。

index.php

<!DOCTYPE html>
<html lang="ja">

<head>
  <title>PHP PDO CRUD</title>
  <link rel="stylesheet" href="styles.css">
</head>

<body>
<?php
require_once("dbconnect.php");
require_once("functions.php");
try {
    $sql = <<<SQL
SELECT * FROM products ORDER BY id DESC
SQL;

    $sth = $dbh->prepare($sql);
    $sth->execute();
    $rows = $sth->fetchAll();
?>
  <main class="container">
    <h1>Product list</h1>
    <table border="1">
      <thead>
        <tr>
          <th>Product name</th>
          <th>Price</th>
          <th>Description</th>
        </tr>
      </thead>
      <tbody>
<?php
if ($rows) :
    foreach ($rows as $row) :
?>
        <tr>
          <td><?= h($row['name']) ?></td>
          <td><?= h($row['price']) ?></td>
          <td><?= h($row['description']) ?></td>
        </tr>
<?php
    endforeach;
endif;
} catch (PDOException $e) {
    exit('ERR! : ' . $e->getMessage());
} finally {
    $dbh = null;
}
?>
      </tbody>
    </table>
  </main>
</body>

</html>