PHPでデータベースの内容を取り出し表示する


#####データベース(player)の作成####
mysql> CREATE
mysql> create database player;
Query OK, 1 row affected (0.00 sec)

mysql> use player;
Database changed
mysql> CREATE TABLE player (number smallint, name text, position text, date timestamp) engine=MyISAM;
Query OK, 0 rows affected (0.31 sec)

#データを入力
mysql> insert into player (number, name, position, date) values ( 1 , '川口能活', 'GK', now());
Query OK, 1 row affected (0.00 sec)

mysql> select number, name, position, date from player;
+--------+--------------+----------+---------------------+
| number | name | position | date |
+--------+--------------+----------+---------------------+
| 1 | 川口能活 | GK | 2013-01-07 23:11:37 |
+--------+--------------+----------+---------------------+
1 row in set (0.00 sec)

#####ここまで#####




####データベースの内容を表示するスクリプト(/var/www/web/ichiran.php)#####

<?php

echo "<HTML lang=ja>\n";
echo "<HEAD>\n";
echo "<META HTTP-EQUIV=Content-Type CONTENT=text/html; CHARSET=UTF-8>\n";
echo "<TITLE>一覧表示</TITLE>\n";
echo "</HEAD>\n";
echo "<BODY>";
echo "<h3><p>選手一覧表示</h3></p>";
///-----------データベース情報
$DBSERVER ="localhost";
$DBUSER="kappa";
$DBPASS ="kappa";
$DBNAME ="player";

///------------MySQLに接続
$con = mysql_connect($DBSERVER, $DBUSER, $DBPASS);
///------------エラー処理1
if(!$con){
 echo "データベース接続開始エラー<br>\n";
 mysql_close($con);
 exit;
}


///------------データベースを選択
$selectdb = mysql_select_db($DBNAME);


///------------クエリを送る
$query = "select * from player; ";
///------------結果の取得
$result = mysql_query($query);

///------------エラー処理1
if(!$result){
 echo "データベースエラー<br>\n";
 mysql_close($con);
 exit;
}

///------------行数を取得
$num_row = mysql_numrows($result);
$num_field = mysql_num_fields($result);
echo "該当件数".$num_row."件です<br>\n";


echo "<table border=1>\n";
echo "<tr>\n";
///+++++++++ 列名 ++++++++++
//テーブルの見出しを表示させるため、フィールド数だけループをまわす
for($i =0; $i < $num_field; $i++){
 echo "<th>".mysql_field_name($result, $i)."</th>";
}

///+++++++++ レコード表示 ++++++++++
//レコード数だけループをまわす
for($j =0 ; $j < $num_row; ++$j){
//1レコード分のデータを取り出し、連想配列$rowに格納
 $row = mysql_fetch_array($result);
echo "<tr>";
  for($k=0; $k < $num_field; ++$k){
   echo "<td>".$row[$k]."</td>";
  }
echo "</tr>\n";
}
echo "</table>";

echo "<hr>計 $num_row 件<hr>\n";


///+++++++++ mysqlを切断 ++++++++++
mysql_close($con);

echo "</BODY></HTML>";

?>

####ここまで#####



【参考文献】
清水正人 『6時間でできるLAMPサーバー構築ガイド』ソシム 2007 98 - 109 ,132 - 143pp