9)作成したデータベースで各種結合を行ってみる。
①商品メーカ表とメーカ表を結合してみる。
|
商品メーカテーブル
(productMaker_tbl) |
|
メーカテーブル(maker) |
|
ID
(id) |
商品コード
(productId) |
メーカID
(makerId) |
1 |
101 |
1 |
2 |
102 |
2 |
3 |
103 |
3 |
4 |
104 |
2 |
5 |
105 |
4 |
| |
| |
| |
|
|
ID
(id) |
メーカー名
(makerName) |
1 |
株式会社トンボ鉛筆 |
2 |
三菱鉛筆株式会社 |
3 |
株式会社サクラクレパス |
4 |
株式会社パイロットコーポレーション |
| |
| |
|
|
商品メーカテーブル
(productMaker_tbl)のメーカID
(makerId)と
メーカテーブル(maker)のID
(id)を関連させ結合させて以下の表を作る。 |
|
↓結合による表示 |
|
[id],[商品コード],[メーカ名]の表示
ID |
商品コード |
メーカ名 |
1 |
101 |
株式会社トンボ鉛筆 |
2 |
102 |
三菱鉛筆株式会社 |
3 |
103 |
株式会社サクラクレパス |
4 |
104 |
三菱鉛筆株式会社 |
5 |
105 |
株式会社パイロットコーポレーション |
| |
| |
| |
|
ファイル名:puroductMakerDisp1.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>[id],[商品コード],[メーカ名]の表示</title>
</head>
<body>
<?php
echo "[id],[商品コード],[メーカ名]の表示<br>\n";
$conn=mysqli_connect('localhost','******','******');
mysqli_select_db($conn,'product_db');
$sql="*******************************************************";
if($result=mysqli_query($conn,$sql)){
if(mysqli_num_rows($result)!=0){
echo "<table border=\"1\">\n";
echo "<tr><td>ID</td><td>商品コード</td><td>メーカ名</td></tr>\n";
while($row=mysqli_fetch_array($result,MYSQL_ASSOC)){
echo "<tr>\n";
echo "<td style=\"text-align:right;\">{$row['id']}</td>\n
<td style=\"text-align:right;\">{$row['productId']}</td>\n
<td>{$row['makerName']}</td>\n";
echo "</tr>\r\n";
}
echo "</table>\n";
}
}
else{
echo "条件に合ったデータは存在しません<br>\n";
}
mysqli_close($conn);
?>
</body>
</html>
②
商品メーカ表とメーカ表、商品表を結合してみる。
|
商品メーカテーブル
(productMaker_tbl) |
|
メーカテーブル(maker_tbl) |
|
商品テーブル(product_tbl) |
|
ID
(id) |
商品コード
(productId) |
メーカID
(makerId) |
1 |
101 |
1 |
2 |
102 |
2 |
3 |
103 |
3 |
4 |
104 |
2 |
5 |
105 |
4 |
| |
| |
| |
|
|
ID
(id) |
メーカー名
(makerName) |
1 |
株式会社トンボ鉛筆 |
2 |
三菱鉛筆株式会社 |
3 |
株式会社サクラクレパス |
4 |
株式会社パイロットコーポレーション |
| |
| |
|
|
ID
(id) |
商品コード
(puroductId) |
商品名
(productName) |
1 |
101 |
消しゴム |
2 |
102 |
鉛筆(HB) |
3 |
103 |
消しゴム |
4 |
104 |
鉛筆(H) |
5 |
105 |
シャープペンシル |
| |
| |
| |
|
|
商品メーカテーブル
(productMaker_tbl)のメーカID
(makerId)と
メーカテーブル(maker)のID
(id)、
商品メーカテーブル
(productMaker_tbl)の商品コード
(productId)と商品テーブル(product_tbl)の商品コード(puroductId)を
関連させ結合させて以下の表を作る。 |
|
↓結合による表示 |
|
[id],[商品コード],[商品名],[メーカ名]の表示
ID |
商品コード |
商品名 |
メーカ名 |
1 |
101 |
消しゴム |
株式会社トンボ鉛筆 |
2 |
102 |
鉛筆(HB) |
三菱鉛筆株式会社 |
3 |
103 |
消しゴム |
株式会社サクラクレパス |
4 |
104 |
鉛筆(H) |
三菱鉛筆株式会社 |
5 |
105 |
シャープペンシル |
株式会社パイロットコーポレーション |
| |
| |
|
| |
|
ファイル名:puroductMakerDisp1.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>[id],[商品コード],[商品名],[メーカ名]の表示</title>
</head>
<body>
<?php
echo "[id],[商品コード],[商品名],[メーカ名]の表示<br>\n";
$conn=mysqli_connect('localhost','*******','******');
mysqli_select_db($conn,'product_db');
$sql="*****************************************************************************************";
if($result=mysqli_query($conn,$sql)){
if(mysqli_num_rows($result)!=0){
echo "<table border=\"1\">\r\n";
echo "<tr><td>ID</td><td>商品コード</td><td>商品名</td><td>メーカ名</td></tr>\n";
while($row=mysqli_fetch_array($result,MYSQL_ASSOC)){
echo "<tr>\n";
echo "<td style=\"text-align:right;\">{$row['id']}</td>\n
<td style=\"text-align:right;\">{$row['productId']}</td>\n
<td>{$row['productName']}</td>\n
<td>{$row['makerName']}</td>\n";
echo "</tr>\n";
}
echo "</table>\n";
}
}
else{
echo "条件に合ったデータは存在しません<br>\n";
}
mysqli_close($conn);
?>
</body>
</html>
10)上記の9)の①、②を「JOIN」を使わずに実現してください。
11)商品テーブルを基準に単価と在庫数を表す表を作ってください。
12)「表1」を作るプログラムを作ってください。
<答え>ファイル名:figuer1Disp.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>表1の表示</title>
</head>
<body>
<?php
echo "表1の表示<br>\n";
$conn=mysqli_connect('localhost','******','******');
mysqli_select_db($conn,'product_db');
$sql="*************************************************************************************************";
if($result=mysqli_query($conn,$sql)){
if(mysqli_num_rows($result)!=0){
echo "<table border=\"1\">\r\n";
echo "<tr><td>ID</td>
<td>商品コード</td>
<td>商品名</td>
<td>単価</td>
<td>在庫数</td>
<td>メーカ名</td></tr>\n";
while($row=mysqli_fetch_array($result,MYSQL_ASSOC)){
echo "<tr>\n";
echo "<td style=\"text-align:right;\">{$row['id']}</td>\n
<td style=\"text-align:right;\">{$row['productId']}</td>\n
<td>{$row['productName']}</td>\n
<td style=\"text-align:right;\">{$row['unitPrice']}</td>\n
<td style=\"text-align:right;\">{$row['stockNumber']}</td>\n
<td>{$row['makerName']}</td>\n";
echo "</tr>\n";
}
echo "</table>\n";
}
}
else{
echo "条件に合ったデータは存在しません<br>\n";
}
mysqli_close($conn);
?>
</body>
</html>