|
4.4 データベースの作成
以下 、4.3で作成したMySQLデータベースのメタデータ表示用の ユーザ定義関数をインクルードファイルcommon_mysql.php内に記述し、利用することとします。
common_mysql.phpは、以下をクリックするとダウンロードできます。解凍して使ってください。
common_mysql.zip(ダウンロード用圧縮ファイル)
「common_mysql.php」
<?php
// インクルードファイル(common_mysql.php)
// MySQL関連のユーザ定義関数
// ----------------------------------------------
// データベースの一覧表示の関数の定義
function show_databases($db)
{
// データベースリストの取得
$rs = mysql_list_dbs($db);
// 結果セット内のレコード数の取得
$num_rows = mysql_num_rows($rs);
print "<table border=1 cellpadding=0 cellspacing=0>\n";
print "<tr>\n";
print "<td align=center>Database</td>\n";
print "</tr>\n";
// 結果セット内のレコードを順次参照
for($i = 0; $i < $num_rows; $i++)
{
// データベース名の取得
$db_name = mysql_db_name($rs,$i);
// データベース名の表示
print "<tr>\n";
print "<td>{$db_name}</td>\n";
print "</tr>\n";
}
print "</table>\n";
}
// ----------------------------------------------
// テーブルの一覧表示の関数の定義
function show_tables($db_name,$db)
{
// 指定されたデータベース内のテーブルリストの取得
$rs = mysql_list_tables($db_name,$db);
// 結果セット内のレコード数の取得
$num_rows = mysql_num_rows($rs);
print "<table border=1 cellpadding=0 cellspacing=0>\n";
print "<tr>\n";
print "<td align=center>Tables in {$db_name}</td>\n";
print "</tr>\n";
// テーブルがある場合
if($num_rows > 0)
{
// 結果セット内のレコードを順次参照
for($i = 0; $i < $num_rows; $i++)
{
// テーブル名の取得
$table_name = mysql_table_name($rs,$i);
// テーブル名の表示
print "<tr>\n";
print "<td>{$table_name}</td>\n";
print "</tr>\n";
}
}
// テーブルが無い場合
else
{
print "<tr>\n";
print "<td>テーブルはありません</td>\n";
print "</tr>\n";
}
print "</table>\n";
}
// ----------------------------------------------
// フィールド属性の一覧表示の関数の定義
function show_fields($db_name,$tbl_name,$db)
{
// 指定されたデータベース、テーブル内のフィールドリストの取得
$rs = mysql_list_fields($db_name,$tbl_name,$db);
// 結果セット内のレコード数の取得
$num_rows = mysql_num_fields($rs);
print "テーブル「{$tbl_name}」内のフィールド属性一覧\n";
print "<table border=1 cellpadding=0 cellspacing=0>\n";
print "<tr>\n";
print "<td align=center>フィールド名</td>\n";
print "<td align=center>データ型(長さ)</td>\n";
print "<td align=center>フラグ</td>\n";
print "</tr>\n";
// フィールドがある場合
if($num_rows > 0)
{
// 結果セット内のレコードを順次参照
for($i = 0; $i < $num_rows; $i++)
{
// フィールド名の取得
$field_name = mysql_field_name($rs,$i);
// データ型の取得
$field_type = mysql_field_type($rs,$i);
// フィールドの長さの取得
$field_len = mysql_field_len($rs,$i);
// フィールドのフラグの取得
$field_flags = mysql_field_flags($rs,$i);
// フラグがヌルなら半角スペースとする
if($field_flags == '')
{
$field_flags=' ';
}
// フィールド属性の表示
print "<tr>\n";
print "<td>{$field_name}</td>\n";
print "<td>{$field_name}({$field_len})</td>\n";
print "<td>{$field_flags}</td>\n";
print "</tr>\n";
}
}
// フィールドが無い場合
else
{
print "<tr>\n";
print "<td>フィールドはありません</td>\n";
print "</tr>\n";
}
print "</table>\n";
}
■データベースの作成
データベースの作成には、SQL文の「CREATE DATABASE」文を使います。
CREATE DATABASE データベース名;
(注)mysql_create_db()関数はPHP5.0ではなくなりました。
データベースの削除には、SQL文の「DROP DATABASE」文を使います。
DROP DATABASE データベース名;
(注)mysql_drop_db()関数はPHP5.0ではなくなりました。
サンプルファイル「create_db.php」を以下に示します。冒頭でインクルードファイルcommon_mysql.phpを読み込んでいます。
「create_db.php」
<?php
// インクルードファイルの読み込み
include "common_mysql.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=EUC-JP">
<title>create_db.php</title>
</head>
<body>
<?php
// データベースサーバへの接続
$db = mysql_connect('localhost','webapl','pass1234');
// データベースの一覧表示
show_databases($db);
print "<br>\n";
// データベースの作成
$db_name = 'db_test';
$str_sql = "CREATE DATABASE {$db_name};";
if(mysql_query($str_sql,$db))
{
print "データベース「{$db_name}」を作成しました。<br><br>\n";
}
else
{
exit('データベース作成失敗');
}
// データベースの一覧再表示
show_databases($db);
// データベースの削除
$str_sql = "DROP DATABASE {$db_name};";
if(mysql_query($str_sql,$db))
{
print "データベース「{$db_name}」を削除しました。<br><br>\n";
}
else
{
exit('データベース削除失敗');
}
// データベースの一覧再々表示
show_databases($db);
// データベースサーバの切断
mysql_close($db);
?>
</body>
</html>
結果は、たとえば以下のように表示されます。

4.5 テーブルの作成
■テーブルの作成
テーブルを作成するには、SQL文の「CREATE TABLE」文を実行します。
CREATE TABLE テーブル名
(
フィールド名1 データ型1(長さ1),
フィールド名2 データ型2(長さ2),
:
PRIMARY KEY(フィールド名)
);
テーブルを削除するには、SQL文の「DROP TABLE」文を実行します。
DROP TABLE テーブル名;
以下にサンプルファイル「create_table.php」を示します。テーブルがデータベース内に存在するかチェックするユーザ定義関数table_exists()関数を定義して使用しています。
「create_table.php」
<?php
// インクルードファイルの読み込み
include "common_mysql.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=EUC-JP">
<title>create_table.php</title>
</head>
<body>
<?php
// データベースサーバへの接続
$db = mysql_connect('localhost','webapl','pass1234');
// データベースの選択
$db_name = 'db_テスト';
mysql_select_db($db_name,$db) or die("データベースがありません");
// テーブルの一覧表示
show_tables($db_name,$db);
print "<br>\n";
// テーブルが存在しない場合
$tbl_name = "tbl_test";
if(!table_exists($db_name,$tbl_name,$db))
{
// テーブル作成用SQL文
$str_sql = "CREATE
TABLE {$tbl_name}"
. "("
. "shouhin_code CHAR(4),"
. "shouhin_mei CHAR(16),"
. "tanaka INTEGER,"
. "PRIMARY KEY(shouhin_code)"
. ");";
print '$str_sql= ' . "'{$str_sql}'<br><br>";
// SQL文の実行
mysql_query($str_sql,$db);
print "テーブル「{$tbl_name}」を作成しました。<br><br>\n";
// テーブルの一覧表示
show_tables($db_name,$db);
print "<br>\n";
// フィールド属性の一覧表示
show_fields($db_name,$tbl_name,$db);
print "<br>\n";
}
// テーブルが存在する場合
else
{
print "テーブル「{$tbl_name}」は作成済みです。<br>\n";
}
// テーブルが存在する場合
if(table_exists($db_name,$tbl_name,$db))
{
// テーブル削除用SQL文
$str_sql = "DROP TABLE {$tbl_name};";
// SQL文の実行
mysql_query($str_sql,$db);
print "テーブル「{$tbl_name}」を削除しました。<br><br>\n";
// テーブルの一覧表示
show_tables($db_name,$db);
print "<br>\n";
}
// テーブルが存在しない場合
else
{
print "テーブル「{$tbl_name}」はありません。<br>\n";
}
// データベースサーバの切断
mysql_close($db);
// ----------------------------------------------
// テーブルの存在チェック関数の定義
function table_exists($db_name,$tbl_name,$db)
{
// テーブルリストの取得
$rs = mysql_list_tables($db_name,$db);
// 結果セットの1レコード分を添え字配列として取得する
while($arr_row = mysql_fetch_row($rs))
{
// 添え字配列内にテーブル名が存在する場合
if(in_array($tbl_name,$arr_row))
{
return true;
}
}
return false;
}
?>
</body>
</html>
結果は、たとえば以下のように表示されます。

【注意】以後、テーブルの存在チェック関数「table_exists()」はインクルードファイル「common_mysql.php」内に追加して記述することとします。
4.6 レコードの参照
■テーブルの全データの取得
テーブルに格納されているレコードのデータを取得するにはSQL文の「SELECT」文を使います。レコードデータを取得することをレコードの読み取りあるいはレコードの参照ともいいます。
テーブルのすべてのレコードのすべてのフィールドのデータを参照する場合は、以下のSELECT文を使います。「*」はワイルドカードといい、ここでは「すべてのフィールド」を意味します。
SELECT * FROM テーブル名;
サンプルファイル「select.php」を以下に示します。
<?php
// インクルードファイルの読み込み
include "common_mysql.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=EUC-JP">
<title>select.php</title>
</head>
<body>
<?php
// データベースサーバへの接続
$db = mysql_connect('localhost','webapl','pass1234');
// データベース名
$db_name = 'db_販売管理';
// データベースの選択
mysql_select_db($db_name,$db);
// 参照するテーブル
$tbl_name = "tbl_商品表";
// SQL文の作成
$str_sql = "SELECT
* FROM {$tbl_name}";
print '$str_sql= ' . "'{$str_sql}'<br><br>";
// SQL文の実行
$rs = mysql_query($str_sql,$db);
// 結果セットの各レコードを順次、連想配列に格納する
while($arr_record = mysql_fetch_assoc($rs))
{
// 連想配列のキー値をフィールド名に、
// 値をフィールド値として取り出す
foreach($arr_record as $field_name => $field_value)
{
// フィールド名とフィールド値を表示
print "[{$field_name}] = {$field_value}<br>\n" ;
}
print "<br>\n";
}
// データベースサーバの切断
mysql_close($db);
?>
</body>
</html>
結果の例を以下に示します。

■レコードの参照結果の表形式での表示
レコードの参照結果を一般的な表形式で表示する方法について示します。
テーブルタグ「<table>を使って、各レコードのフィールドデータを1行づつ表のセルに入れながら表示していきます。
サンプルファイル「select02.php」を以下に示します。
「select02.php」
<?php
// インクルードファイルの読み込み
include "common_mysql.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=EUC-JP">
<title>select.php</title>
</head>
<body>
<?php
// データベースサーバへの接続
$db = mysql_connect('localhost','webapl','pass1234');
// データベース名
$db_name = 'db_hanbai_kanri';
// データベースの選択
mysql_select_db($db_name,$db);
// 参照するテーブル
$tbl_name = "tbl_shouhin_hyou";
// SQL文の作成
$str_sql = "SELECT * FROM {$tbl_name}";
// SQL文の実行
$rs = mysql_query($str_sql,$db);
// 表の表示の開始
print "<table border=1 celpadding=0
cellspacing=0>\n";
// 結果セットの各レコードを順次、連想配列に格納する
while($arr_record = mysql_fetch_assoc($rs))
{
// 行の表示の開始
print "<tr>\n";
// 連想配列のキー値をフィールド名に、
// 値をフィールド値として取り出す
foreach($arr_record as $field_name => $field_value)
{
// フィールド値をセル内に表示
print "<td>{$field_value}</td>\n"
;
}
// 行の表示の終わり
print "</tr>\n";
}
// 表の表示の終了
print "</table>\n";
// データベースサーバの切断
mysql_close($db);
?>
</body>
</html>
結果は、たとえば以下のように表示されます。

■テーブルのヘッダー部の表示
上記の例では、テーブルのヘッダー部にフィールド名が表示されていません。以下に、表のヘッダー部にあらかじめフィールド名を表示する方法を示します。
サンプルファイル「select03.php」を以下に示します。
「select03.php」
<?php
// インクルードファイルの読み込み
include "common_mysql.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=EUC-JP">
<title>select.php</title>
</head>
<body>
<?php
// データベースサーバへの接続
$db = mysql_connect('localhost','webapl','pass1234');
// データベース名
$db_name = 'db_hanbai_kanri';
// データベースの選択
mysql_select_db($db_name,$db);
// 参照するテーブル
$tbl_name = "tbl_shouhin_hyou";
// SQL文の作成
$str_sql = "SELECT * FROM {$tbl_name}";
// SQL文の実行
$rs = mysql_query($str_sql,$db);
// 表の表示の開始
print "<table border=1 celpadding=0 cellspacing=0>\n";
// テーブルのフィールド名の取得
// 指定されたデータベース、テーブル内のフィールドリストの取得
$rs2 = mysql_list_fields($db_name,$tbl_name,$db);
// 結果セット内のフィールド数の取得
$num_rows = mysql_num_fields($rs2);
// フィールドがある場合
if($num_rows > 0)
{
// 表のヘッダー部(フィールド名)の表示開始
print "<tr>\n";
// 結果セット内のレコードを順次参照
for($i = 0; $i <
$num_rows; $i++)
{
// フィールド名の取得
$field_name = mysql_field_name($rs,$i);
// フィールド名をセル内に表示
print "<td
align=center>{$field_name}</td>\n";
}
// 表のヘッダー部の表示終了
print "</tr>\n";
// 結果セットの各レコードを順次、連想記憶に格納する
while($arr_record = mysql_fetch_assoc($rs))
{
// 行の表示の開始
print "<tr>\n";
// 連想配列のキー値をフィールド名に、
// 値をフィールド値として取り出す
foreach($arr_record as $field_name => $field_value)
{
// フィールド値をセル内に表示
print "<td>{$field_value}</td>\n" ;
}
// 行の表示の終わり
print "</tr>\n";
}
}
// 表の表示の終了
print "</table>\n";
// データベースサーバの切断
mysql_close($db);
?>
</body>
</html>
結果は、たとえば以下のように表示されます。

■テーブルの全レコード表示用ユーザ定義関数「show_records()」
テーブルの全レコード表示はテーブルデータの確認用によく使うので、ユーザ定義関数 「show_records()」 として定義しておくこととします。
テーブルの全レコード表示用ユーザ定義関数「show_records()」を使用したサンプルファイルを以下に示します。結果セットのフィールド名を配列に格納するユーザ定義関数「arr_fields_name()」も定義して使っています。
サンプルファイル「show_records.php」を以下に示します。
「show_records.php」
<?php
// インクルードファイルの読み込み
include "common_mysql.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=EUC-JP">
<title>select.php</title>
</head>
<body>
<?php
// データベースサーバへの接続
$db = mysql_connect('localhost','webapl','pass1234');
// データベース名
$db_name = 'db_hanbai_kanri';
// データベースの選択
mysql_select_db($db_name,$db);
// 参照するテーブル
$tbl_name = "tbl_shouhin_hyou";
// テーブルの全レコードの一覧表示
print "テーブル「{$tbl_name}」のレコード一覧<br>\n";
show_records($db_name,$tbl_name,$db);
// 結果セットの解放
mysql_free_result($rs);
// データベースサーバの切断
mysql_close($db);
// -----------------------------------------------
// テーブルの全データの一覧表示関数の定義
function show_records($db_name,$tbl_name,$db)
{
// $db_name データベース名(R)
// $tbl_name テーブル名(R)
// $db 接続ID(R)
// 戻り値 = TRUE テーブルにフィールド名がある場合
// = FALSE テーブルにフィールド名がない場合
// SQL文の作成
$str_sql = "SELECT * FROM {$tbl_name}";
// SQL文の実行
$rs = mysql_query($str_sql,$db);
// フィールドがある場合
if(arr_fields_name($rs,$arr_fields_name))
{
// 表の表示の開始
print "<table border=1 celpadding=0 cellspacing=0>\n";
// 表のヘッダー部(フィールド名)の表示開始
print "<tr>\n";
// 配列の値を順次参照
foreach($arr_fields_name as $field_name)
{
// フィールド名の表示
print "<td align=center>{$field_name}</td>\n";
}
// 表のヘッダー部の表示終了
print "</tr>\n";
// 結果セットの各レコードを順次、連想記憶に格納する
while($arr_record = mysql_fetch_assoc($rs))
{
// 行の表示の開始
print "<tr>\n";
foreach($arr_record as $field_name => $field_value)
{
// フィールド値をセル内に表示
print "<td>{$field_value}</td>\n" ;
}
// 行の表示の終わり
print "</tr>\n";
}
// 表の表示の終了
print "</table>\n";
$result = TRUE;
}
// フィールドがない場合
else
{
$result = FALSE;
}
// 結果セットの解放
mysql_free_result($rs);
return $result;
}
// ----------------------------------------------
// テーブルのフィールド名を配列に格納する関数の定義
function arr_fields_name($rs,&$arr_fields_name)
{
// $rs 結果ID(R)
// $arr_fields_name フィールド名を格納した添字配列(W)
// 戻り値 = TRUE テーブルにフィールド名がある場合
// = FALSE テーブルにフィールド名がない場合
// フィールド名を格納する配列の初期化
$arr_fields_name = array();
// 結果セットの最初のレコードのフィールド名と値を連想配列に取得
$arr_record = mysql_fetch_assoc($rs);
// 結果セットのポインター(レコード位置)を最初に戻す
mysql_data_seek($rs,0);
// フィールドがある場合
if(is_array($arr_record))
{
$arr_fields_name = array_keys($arr_record);
$result = TRUE;
}
// フィールドがない場合
else
{
$result = FALSE;
}
return $result;
}
?>
</body>
</html>
結果は、たとえば以下のように表示されます。

■結果セットの全レコード表示用ユーザ定義関数「show_rs()」
結果セットの全レコード表示関数をテーブルの全レコード表示関数 「show_records()」と同様に、ユーザ定義関数「show_rs()」
として定義しておくこととします。
テーブルの全レコード表示用ユーザ定義関数「show_rs()」を使用したサンプルファイルを以下に示します。
サンプルファイル「show_rs.php」を以下に示します。
「show_rs.php」
<?php
// インクルードファイルの読み込み
include "common_mysql.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=EUC-JP">
<title>select.php</title>
</head>
<body>
<?php
// データベースサーバへの接続
$db = mysql_connect('localhost','webapl','pass1234');
// データベース名
$db_name = 'db_hanbai_kanri';
// データベースの選択
mysql_select_db($db_name,$db);
// 参照するテーブル
$tbl_name = "tbl_shouhin_hyou";
// SQL文の作成
$str_sql = "SELECT * FROM {$tbl_name}";
// SQL文の実行
$rs = mysql_query($str_sql,$db);
// テーブルの全レコードの一覧表示
print "テーブル「{$tbl_name}」のレコード一覧<br>\n";
show_rs($rs);
// 結果セットの解放
mysql_free_result($rs);
// データベースサーバの切断
mysql_close($db);
// -----------------------------------------------
// 結果セットの全データの一覧表示関数の定義
function show_rs($rs)
{
// $rs 結果セット(R)
// 戻り値 = TRUE 結果セットにフィールド名がある場合
// = FALSE 結果セットにフィールド名がない場合
// フィールドがある場合
if(arr_fields_name($rs,$arr_fields_name))
{
// 表の表示の開始
print "<table border=1 celpadding=0 cellspacing=0>\n";
// 表のヘッダー部(フィールド名)の表示開始
print "<tr>\n";
// 配列の値を順次参照
foreach($arr_fields_name as $field_name)
{
// フィールド名の表示
print "<td align=center>{$field_name}</td>\n";
}
// 表のヘッダー部の表示終了
print "</tr>\n";
// 結果セットの各レコードを順次、連想記憶に格納する
while($arr_record = mysql_fetch_assoc($rs))
{
// 行の表示の開始
print "<tr>\n";
foreach($arr_record as $field_name => $field_value)
{
// フィールド値をセル内に表示
print "<td>{$field_value}</td>\n" ;
}
// 行の表示の終わり
print "</tr>\n";
}
// 表の表示の終了
print "</table>\n";
$result = TRUE;
}
// フィールドがない場合
else
{
$result = FALSE;
}
return $result;
}
// ----------------------------------------------
// テーブルのフィールド名を配列に格納する関数の定義
function arr_fields_name($rs,&$arr_fields_name)
{
// $rs 結果ID(R)
// $arr_fields_name フィールド名を格納した添字配列(W)
// 戻り値 = TRUE テーブルにフィールド名がある場合
// = FALSE テーブルにフィールド名がない場合
// フィールド名を格納する配列の初期化
$arr_fields_name = array();
// 結果セットの最初のレコードのフィールド名と値を連想配列に取得
$arr_record = mysql_fetch_assoc($rs);
// 結果セットのポインター(レコード位置)を最初に戻す
mysql_data_seek($rs,0);
// フィールドがある場合
if(is_array($arr_record))
{
$arr_fields_name = array_keys($arr_record);
$result = TRUE;
}
// フィールドがない場合
else
{
$result = FALSE;
}
return $result;
}
?>
</body>
</html>
結果は、たとえば以下のように表示されます。

【注意】以後、テーブルの全レコードの表示関数「show_tables()」、結果セットの全レコードの表示関数「show_rs()」、および結果セットのフィールド名配列取得関数「arr_fields_name()」はインクルードファイル「common_mysql.php」内に追加して記述することとします。
■テーブルの一部のデータを表示
すべてのレコードの指定したフィールド名のみを参照したい場合は、以下のSELECT文を使います。
SELECT フィールド名1, フィールド名2,・・・,フィールド名n FROM テーブル名;
特定の条件を満たすレコードのすべてのフィールドを参照する場合は、SELECT文に条件を記述するWHERE句を付加します。
SELECT * FROM テーブル名 WHERE 条件式;
特定の条件を満たすレコードの指定のフィールドを参照する場合は、以下のようなSELECT文を使います。
SELECT フィールド名1, フィールド名2,・・・,フィールド名n
FROM テーブル名
WHERE 条件式;
サンプルファイル「select06.php」を以下に示します。
「select06.php」
<?php
// インクルードファイルの読み込み
include "common_mysql.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=EUC-JP">
<title>select06.php</title>
</head>
<body>
<?php
// データベースサーバへの接続
$db = mysql_connect('localhost','webapl','pass1234');
// データベース名
$db_name = 'db_hanbai_kanri';
// データベースの選択
mysql_select_db($db_name,$db);
// 参照するテーブル
$tbl_name = "tbl_shouhin_hyou";
// 全レコード、全フィールド表示用SQL文の作成
$str_sql = "SELECT * FROM {$tbl_name};";
// SQL文の実行
$rs = mysql_query($str_sql,$db);
// テーブルの全レコードの一覧表示
print "テーブル「{$tbl_name}」の全レコード、全フィールドデータ一覧<br>\n";
show_rs($rs);
print "<br>\n";
// 結果セットの解放
mysql_free_result($rs);
// 指定したフィールドのみを参照するSQL文の作成
$str_sql = "SELECT
shouhin_mei,tanka FROM {$tbl_name};";
// SQL文の実行
$rs2 = mysql_query($str_sql,$db);
// 結果セットの表示
print "\"{$str_sql}\"<br>\n";
show_rs($rs2);
print "<br>\n";
// 結果セットの解放
mysql_free_result($rs2);
// 条件にあったレコードのみを抽出するSQL文の作成
$str_sql = "SELECT
* FROM {$tbl_name}"
. " WHERE shouhin_code = 1002";
// SQL文の実行
$rs3 = mysql_query($str_sql,$db);
// 結果セットの表示
print "\"{$str_sql}\"<br>\n";
show_rs($rs3);
print "<br>\n";
// 結果セットの解放
mysql_free_result($rs3);
// 条件にあったレコードの指定のフィールド名みを抽出するSQL文の作成
$str_sql = "SELECT shouhin_mei,tanka FROM
{$tbl_name}"
. " WHERE shouhin_mei = '海の幸御膳'";
// SQL文の実行
$rs4 = mysql_query($str_sql,$db);
// 結果セットの表示
print "\"{$str_sql}\"<br>\n";
show_rs($rs4);
print "<br>\n";
// 結果セットの解放
mysql_free_result($rs4);
// データベースサーバの切断
mysql_close($db);
?>
</body>
</html>
結果は、たとえば以下のように表示されます。

|