PHPでデータベース内のテーブルをHTMLで出力する方法
カテゴリ:WEB制作
Webサイト制作ではお問い合わせ情報や商品情報、在庫情報などをデータベースに登録してあることがよくあります。これらの情報を利用してサービスを運営したりマーケティングなどではマーケティングやWebサイトの改善などの使用することもあります。
ただ、毎回ターミナルなどを使用してデータベースにアクセスして、プログラムを叩いて表示させたり、CSVでダウンロードさせるなどはとても非効率です。
今回は『PHPでデータベース内のテーブルをHTMLで出力する方法』を紹介します。
データベースへの書き込みの方法は、『PHPで入力フォームからCSVにデータを書き込みする方法』を参考にしてください。
コードの紹介
まずはコードから紹介します。
WordPressで使用する場合はpage-○○.phpなどのテンプレートファイルに直接記載してください。
<?php // データベース接続情報を設定 $servername = "データベースサーバー名"; $username = "データベースユーザー名"; $password = "データベースパスワード"; $dbname = "データベース名"; // MySQL接続の作成 $conn = new mysqli($servername, $username, $password, $dbname); // 接続確認 if ($conn->connect_error) { die("接続失敗: " . $conn->connect_error); } // データベースからデータを取得するためのSQLクエリを作成 $sql = "SELECT product_name, display_size, cpu, bat FROM products"; $result = $conn->query($sql); // 取得したデータがある場合、それを表示 if ($result->num_rows > 0) { // テーブルのヘッダーを表示 echo "<table><thead><tr><th>商品名</th><th>ディスプレイサイズ</th><th>CPU</th><th>バッテリー</th></tr></thead><tbody>"; // 各レコードをループしてテーブルの行として表示 while($row = $result->fetch_assoc()) { echo "<tr><td>" . $row["product_name"]. "</td><td>" . $row["display_size"]. "</td><td>" . $row["cpu"]. "</td><td>" . $row["bat"]. "</td></tr>"; } echo "</tbody></table>"; } else { // データがない場合のメッセージを表示 echo "0 件のレコード"; } // データベース接続を閉じる $conn->close(); ?>
コード解説
データベースに接続する
データベースにそれぞれの接続情報を代入します。
『mysqli()』で設定情報を渡してデータベースに接続します。
『if ($conn->connect_error) {}』でエラーがあればエラーコードなどの値が返ってきますので、もしデータがある場合は接続に失敗していますので、その際の処理を行っています。
$servername = "データベースサーバー名"; $username = "データベースユーザー名"; $password = "データベースパスワード"; $dbname = "データベース名"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("接続失敗: " . $conn->connect_error); }
データベースからデータを取得する
SELECT文を使用してデータを取得します。
『”SELECT product_name, display_size, cpu, bat FROM products”;』以下、SELECT文の中身を解説します。
『”SELECT カラムの登録列名, カラムの登録列名, カラムの登録列名, カラムの登録列名 FROM 登録してあるテーブル名”;』となります。
変数に格納して『$conn->query($sql)』でデータを取得しています。
$sql = "SELECT product_name, display_size, cpu, bat FROM products"; $result = $conn->query($sql);
取得したテーブルにデータがあれば、表示する
『if ($result->num_rows > 0) {}』でデータベースから取得したテーブルにデータがあるかを確認します。データがあれば処理を行います。
まずは『echo “<table><thead><tr><th>商品名</th><th>ディスプレイサイズ</th><th>CPU</th><th>バッテリー</th></tr></thead><tbody>”;』でテーブルのヘッダーを出力していきます。『while($row = $result->fetch_assoc()) {}』でカラムごとにレコードを取得していきます。
ループが終わったら『</tbody></table>』で終わりタグを設置します。
また。処理が終わったら『$conn->close();』でデータベースの接続を切っています。
if ($result->num_rows > 0) { echo "<table><thead><tr><th>商品名</th><th>ディスプレイサイズ</th><th>CPU</th><th>バッテリー</th></tr></thead><tbody>"; while($row = $result->fetch_assoc()) { echo "<tr><td>" . $row["product_name"]. "</td><td>" . $row["display_size"]. "</td><td>" . $row["cpu"]. "</td><td>" . $row["bat"]. "</td></tr>"; } echo "</tbody></table>"; } else { echo "0 件のレコード"; } $conn->close();
まとめ
以上、『PHPでデータベース内のテーブルをHTMLで出力する方法』でした。
データベースの中身を出力するということはよくありますが今回の方法ではテーブルをHTMLタグで出力して、わかりやすい形で確認することができます。
また、ターミナルを苦手としている場合や、CSVでは確認しづらいといった場合もHTMLソースにCSSを書いてあげればどのようにでも表示は整えられますのでユーザー側に見せるものとしても使用できます。