PHPでデータベース(DB)の値を表示する。

まずはテーブル定義が必要になります。
簡単なテーブルを作成してみよう。


龍馬伝にはまっているので、タイムリーな人物テーブルを作成。

create table table1 (
	id int not null auto_increment,
	nam varchar(20),
	pre varchar(10),
	ag int,
	primary key(id)
);

insert into table1 (nam, pre, ag) values ('坂本龍馬', '土佐藩', 45);
insert into table1 (nam, pre, ag) values ('桂小五郎', '長州藩', 23);
insert into table1 (nam, pre, ag) values ('高杉晋作', '長州藩', 23);
insert into table1 (nam, pre, ag) values ('近藤勇', '京', 28);
insert into table1 (nam, pre, ag) values ('西郷隆盛', '薩摩藩', 28);
insert into table1 (nam, pre, ag) values ('中岡慎太郎', '土佐藩', 35);

じゃ行きまっせ。
とりあえずコード書きますさかい!

<html>
<head>
<title>ただのMySQL表示スクリプト</title>
</head>
<body>
<h3>MySQLでの表示スクリプト</h3>
<?php 
	//接続に必要な情報を羅列してみた
	$server = "localhost";
	$dbname = "test";
	$user = "root";
	$pass = "mysql";
	
	//表示用とDBの文字コードを設定
	$enc_disp = "EUC-JP";
	$enc_db = "EUC-JP";
	
	//データの文字コードを変換する用の関数
	function cnv_enc($string, $to, $from) {
		$det_enc = mb_detect_encoding($string, $from . "," . $to);
		if ($det_enc and $det_enc != $to) {
			return mb_convert_encoding($string, $to, $det_enc);
		}
		else {
			return $string;
		}
	}
	
	//データベースに接続スクリプト
	$conn = mysql_connect($sv, $user, $pass) or die("コネクション取得時のエラー");
	mysql_select_db($dbname) or die("データベース接続エラー");
	
	//データの取り出し
	$sql = "select * from table1 order by id";
	$res = mysql_query($sql, $conn);
?>
<table border="1">
	<tr>
		<td>ID</td>
		<td>名前</td>
		<td>出身</td>
		<td>年齢</td>
	</tr>
<?php 
	while($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
		echo "<tr>";
		echo "<td>" . $row["id"] . "</td>";
		echo "<td>" . cnv_enc($row["nam"], $enc_disp, $enc_db)."</td>";
		echo "<td>" . cnv_enc($row["pre"], $enc_disp, $enc_db)."</td>";
		echo "<td>" . $row["ag"] ."</td>";
		echo "</tr>";
	}
?>
</table>
<?php 
mysql_close($conn);
?>
</body>
</html>

個人的にやけど、
参考になるなら使ってください。


1.文字コードを変換する用の関数をあらかじめ定義する
僕はデータの文字コードを変換する用の関数をあらかじめ定義するのが好きです。
実際にサイト運営するとPHPは文字化けとの格闘だったからです。
mb_convert_encoding()を呼出す用のcnv_enc()を用意しています。


2.コネクションを取得する
mysql_connect()で接続するためのコネクションを取得します。僕はJavaやってたんで、
この辺はも問題無い!


3.使用するDBをアクティブ化する
mysql_select_db()で使用するデータベースを指定する。



4.SQLを実行し結果を配列にする
mysql_query()でデータを取り出し、mysql_fetch_array()で配列にする。
その際、「MYSQL_ASSOC」を引数にしていすることで、テーブルの項目がインデックスになります。


5.コネクションを閉じる
mysql_close()でコネクションを閉じます。



これで一連の流れは終了!