MySQLのテーブルをWebページに表示
MySQLのテーブルをWebページに表示する💨


どのテーブルを表示させるんですか?


前に作ったデータベース「itijiku_db001」の中のテーブル「tbl_itijiku001」



わっ💦また小桜さんのことを悪く書いて。


それでは、そうですね、、、まずは分かりやすいようにテーブルの氏名を全部表示してみましょう。


<?php
//データベースに接続するための各情報を変数に入れる。
//データベースサーバ名を変数に入れる。
$dbsv = 'mysql***.db.sakura.ne.jp'; //データベース名を変数に入れる。 $dbnm = 'itijiku_db001'; //データベース ユーザ名を変数に入れる。 $dbid = 'itijiku'; //データベース接続用パスワードを変数に入れる。 $pass = 'itijikunopass';
//PDOによりデータベースに接続する。
//意図しないエラー時にDB接続情報が表示されないようにtry-catch構文で書く。
try {
$pdo_obj = new PDO('mysql:host='.$dbsv.'; dbname='.$dbnm, $dbid, $pass);
$pdo_obj->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo_obj->exec('SET NAMES utf8');
//テーブルの全データを抽出するSQLを変数に格納する。
$sql= "SELECT * FROM tbl_itijiku001";
$stmt = $pdo_obj->query($sql);
while ($tbl_row001 = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo htmlspecialchars($tbl_row001['氏名']);
}
}catch(PDOException $e) {
die('失敗したよ、、、どうして(泣): '.$e->getMessage());
}
$pdo_obj = null;
?>
【実行結果】
うん、いい感じ。 次はテーブル形式で表示させたいな


HTMLとPHPが混在しますから、コードは少々分かりづらくないりますが、頑張って作ってみましょう。


<?php
//データベースに接続するための各情報を変数に入れる。
//データベースサーバ名を変数に入れる。
$dbsv = 'mysql***.db.sakura.ne.jp'; //データベース名を変数に入れる。 $dbnm = 'itijiku_db001'; //データベース ユーザ名を変数に入れる。 $dbid = 'itijiku'; //データベース接続用パスワードを変数に入れる。 $pass = 'itijikunopass';
//PDOによりデータベースに接続する。
//テーブル見出しのHTMLコードをピアドキュメントで出力
$midashi_tbl = <<<EOD
<table border="1" style="border-collapse: collapse">
<tr>
<th width="60">項番</th>
<th width="140">氏名</th>
<th width="350">説明</th>
<th width="200">URL</th>
</tr>
EOD; echo $midashi_tbl;
//意図しないエラー時にDB接続情報が表示されないようにtry-catch構文で書く。
try {
$pdo_obj = new PDO('mysql:host='.$dbsv.'; dbname='.$dbnm, $dbid, $pass);
$pdo_obj->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo_obj->exec('SET NAMES utf8');
//テーブルの全データを抽出するSQLを変数に格納する。
$sql= "SELECT * FROM tbl_itijiku001";
$stmt = $pdo_obj->query($sql);
while ($tbl_row001 = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "<tr>";
echo "<th>". htmlspecialchars($tbl_row001['項番'])."</th>";
echo "<th>". htmlspecialchars($tbl_row001['氏名'])."</th>";
echo "<th>". htmlspecialchars($tbl_row001['説明'])."</th>";
echo "<th>". htmlspecialchars($tbl_row001['URL'])."</th>";
echo "</tr>";
}
echo "</table>";
}catch(PDOException $e) {
die('失敗したよ、、、どうして(泣): '.$e->getMessage());
}
$pdo_obj = null;
?>
【実行結果】
項番 | 氏名 | 説明 | URL |
---|---|---|---|
1 | 滾々川 いちじく | グレートガール | http://kurukuru.o0o0.jp/contents/chara_itijiku.php |
2 | 花ノ根 くるり | 優しい | http://kurukuru.o0o0.jp/contents/chara_kururi.php |
3 | 小桜 文鳥 | (`A´)でべそ! | http://kurukuru.o0o0.jp/contents/chara_buncyou.php |
順調ですね。今回の書き方は、echoのダブルクオーテーションで囲った箇所がHTMLコードの部分、それを「.」でPHPコードの部分と結合してるんですね。


それではお次は、氏名のところにURLをハイパーリンクしてみましょう


うー 多分、aタグに「tbl_itijiku001」の「URL」項目を出力させればいいんだよね


<?php
//データベースに接続するための各情報を変数に入れる。
//データベースサーバ名を変数に入れる。
$dbsv = 'mysql***.db.sakura.ne.jp'; //データベース名を変数に入れる。 $dbnm = 'itijiku_db001'; //データベース ユーザ名を変数に入れる。 $dbid = 'itijiku'; //データベース接続用パスワードを変数に入れる。 $pass = 'itijikunopass';
//PDOによりデータベースに接続する。
//テーブル見出しのHTMLコードをピアドキュメントで出力
$midashi_tbl = <<<EOD
<table border="1" style="border-collapse: collapse">
<tr>
<th width="60">項番</th>
<th width="140">氏名</th>
<th width="350">説明</th>
<th width="200">URL</th>
</tr>
EOD;
echo $midashi_tbl;
//意図しないエラー時にDB接続情報が表示されないようにtry-catch構文で書く。
try {
$pdo_obj = new PDO('mysql:host='.$dbsv.'; dbname='.$dbnm, $dbid, $pass);
$pdo_obj->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo_obj->exec('SET NAMES utf8');
//テーブルの全データを抽出するSQLを変数に格納する。
$sql= "SELECT * FROM tbl_itijiku001";
$stmt = $pdo_obj->query($sql);
while ($tbl_row001 = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "<tr>";
echo "<th>". htmlspecialchars($tbl_row001['項番'])."</th>";
echo "<th><a href=". htmlspecialchars($tbl_row001['URL']).">";
echo htmlspecialchars($tbl_row001['氏名']);
echo "</a></th>";
echo "<th>". htmlspecialchars($tbl_row001['説明'])."</th>";
echo "<th>". htmlspecialchars($tbl_row001['URL'])."</th>";
echo "</tr>";
}
echo "</table>";
}catch(PDOException $e) {
die('失敗したよ、、、どうして(泣): '.$e->getMessage());
}
$pdo_obj = null;
?>
【実行結果】
項番 | 氏名 | 説明 | URL |
---|---|---|---|
1 | 滾々川 いちじく | グレートガール | http://kurukuru.o0o0.jp/contents/chara_itijiku.php |
2 | 花ノ根 くるり | 優しい | http://kurukuru.o0o0.jp/contents/chara_kururi.php |
3 | 小桜 文鳥 | (`A´)でべそ! | http://kurukuru.o0o0.jp/contents/chara_buncyou.php |
できちゃった!天才か!


でも、これ一か月もすれば、本人も見返して何書いてあるか分からなくなるやつだね。


複雑なコードだと、自分の書いたコードの意味を忘れるのも、ある程度はしかたないのかもしれませんが、そうならないようにできるだけ分かりやすいコードを書いて、コメントを残すように心がけましょうね。


【参考】
お名前