まず始めに目的ですが、

「問屋が取り扱っている商品の一覧を表示する」です。
PHPとMySQLを使います。

■商品テーブル
[商品ID][商品名][価格]のフィールド

■仕入先テーブル
[仕入先ID][問屋名]のフィールド

ここまでそれぞれにレコードを入れて準備できています。

ここからよくわからないのですが、中間テーブルを作って
[商品ID][商品名][問屋名]
を表示するクエリ作ればいいのかなと考えています。

そして最終的に結果をPHPを使って出力したいと思っています。

PHP表示例
----------------------
問屋A
・商品a
・商品c
・商品d
・商品g
----------------------
配列に入れてしまえはいいと思うのですが、まだ経験不足で想像できません。
中間テーブルの作成からこ結果の表示までどのようなコードを書いたらいいか教えてください。

回答の条件
  • 1人10回まで
  • 登録:2007/09/29 03:15:04
  • 終了:2007/09/29 13:38:37

回答(1件)

id:masapguin No.1

masapguin回答回数25ベストアンサー獲得回数32007/09/29 12:32:20

ポイント60pt

前提について確認したいのですが

・商品IDはどの仕入先でも同じ商品については同じIDが共通につく

・仕入先は複数ある

で問題ないでしょうか。


となると、もうひとつ「それぞれの仕入先がどの商品を持っているか」テーブル(在庫テーブルとします)を作成し、それを一覧表示することになるとおもいます。

テーブル構造は

[在庫データID(オートナンバー)][仕入先ID][商品ID]([数量])

くらいになるでしょうか。


それぞれの仕入先(問屋)がどの商品を持っているのか、自動的には判別できませんのでここは手入力になると思いますが、これが準備できれば



$conn = mysql_connect(*********************);

$sql = "SELECT * FROM 在庫テーブル, 商品テーブル, 仕入先テーブル WHERE 在庫.仕入先ID = 仕入先.仕入先ID AND 在庫.商品ID = 商品.商品ID ";

$result = mysql_query($conn,$sql);

//DBより在庫データ一覧を取得

while($row = mysql_fetch_assoc($result)){

 //ここで配列に $data[仕入先ID][商品ID] = 商品名 のような形で格納していきます

}

foreach($data as $key => $val){

 echo $val[仕入先ID][仕入先名];

  foreach($data[仕入先ID] as $key2 => $val2){

   echo $val2[商品ID][商品名];

 }

}

のようなかたちになるかとおもいます。

id:plugbot

前提がおかしかったですね(汗)

確かに在庫テーブルを作ればOKということですね。

最初からデータベースの設計を見直します。

コード参考になりました。

お付き合いいただきありがとうございます。

2007/09/29 13:38:12

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません