【PHP】新着情報をページネーションで表示する。#2 MySQLでデータベースに接続して、データを取得し、HTMLに表示する方法
今回は2回目です。一回目はこちらから。
データベースに接続する
phpのファイルを準備
xamppのhtdocsのフォルダの中にphpファイルを作成します。
前回に設定したユーザアカウントを使います。
以下のように記述します。dbnameと$userと$passはご自身で決めたものを記述してください。それ以外はコピペで構いません。
<?php
$dsn = 'mysql:host=localhost;dbname=blog;charset=utf8';
$user = 'blog-user';
$pass = '12345';
try {
$dbh = new PDO($dsn,$user,$pass,[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
echo '接続成功';
} catch(PDOException $e) {
echo '接続失敗'. $e->getMessage();
exit();
};
?>
phpファイルを開いてみよう
初心者の方は注意ですが、phpファイルを開くとき、相対パスで開くと、コードがそのまま表示されてしまいます。
C:\xampp\htdocs\database.php
相対パスではなく、以下のように開きます。
http://localhost/database.php
データベース名、ユーザー名、パスワードが正しければ、「接続成功」と表示されるはずです。
「接続成功」したら、echo '接続成功'を削除しておきましょう。
データベースから情報を得る
続けて、以下のように記述しましょう。
//➀sqlの準備
$sql = 'SELECT * FROM blog';
//➁sqlの実行
$stmt = $dbh->query($sql);
//③sqlの結果を受けとる
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
ブラウザに表示しよう。
続けて以下のように記述しましょう。とりあえず、ブラウザに表示するだけの目的なので、すごく簡単なコードです。
foreach($result as $post) :
echo $post['id'] ;
echo '<br>';
echo $post['title'];
echo '<br>';
echo $post['category'];
echo '<br>';
echo $post['date'];
echo '<br>';
endforeach;
}
ブラウザで表示すると
まとめ
今回は、データベースに接続し、データを取得し、ブラウザに表示するまでを解説しました。初めてこれができると感動します。
次は、取得したデータをきれいに表示できるようにします。さらにはこれをページネーションで表示する方法を紹介します。