次のコードとデータベースがあります。私の意図は、エンドユーザーがデータベースから列を選択し(「ajax」オプション/mysqlから直接選択することにより)、それらについてレポートを実行できることです。彼らが使用するテーブルを事前に決定でき、彼らは列を選択します。私の最大の問題は、「スケジュール」クエリを実行する最良の方法です。
スケジュールを実行するには、「Customer」と「Delivery」の詳細 (顧客情報と配送先住所) が必要です。すべてのテーブルの「custnum」と年を使用して、実行する年間スケジュールを選択します (つまり custnum bar12345)。・年間スケジュール表はbar123452012
bar123452012 テーブルから引き出された「custnum」ごとに 2 つの製品がある可能性があります。
このテーブルは製品ごとに 1 つの行ですが、367 列、1-prodid、および yday 整数でタイトル付けされた 366 です。php は、別の関数でその年に 365 または 366 を使用する必要がある場合に機能します。
何を提案しますか?すべての顧客を 1 人ずつ引き出してテーブルにフォーマットする PHP ループ、または tindex に基づいて各行に異なるテーブルを左結合する SQL クエリがあります。2012id?! 少なくとも 200、おそらく最大 1000 の顧客テーブルについて話しているため、速度と効率が必要です。
リアリティチェックをしてくれたドワーフに感謝します。データベースを再編成して、1 つの集計表を作成し、そこから作業します。
ありがとうドワーフ。午後中ずっと新しいデザインに取り組んでいます... データベース
表 customer の表構造
custnum varchar(255) No
surname varchar(50) No
name varchar(50) No
phone1 varchar(50) No
phone2 varchar(50) No
email varchar(50) No
add1 varchar(50) No
add2 varchar(50) no
city varchar (50)
郵便番号なし varchar(10) いいえ
テーブル配信詳細のテーブル構造
special varchar(50) いいえ
add1 varchar(50) いいえ
add2 varchar(50) いいえ
city varchar(50) いいえ
postcode varchar(10) いいえ
custnum varchar(100) いいえ
テーブル ノートのテーブル構造
custnum varchar(50)
メモなし varchar(50)
時刻タイムスタンプなし いいえ CURRENT_TIMESTAMP
テーブル prodgroup のテーブル構造
pgroup varchar(20)
名前なし varchar(50)
説明なし varchar(50) いいえ
テーブル プロダクトのテーブル構造
name varchar(50 ) No amount varchar(50
) No
description varchar(50) No
pgroup varchar(50) No
price varchar(50) No
picture varchar(100) No
productid varchar(10) No
suppid varchar(50) No
vat tinyint (1) いいえ
テーブル スケジュールのテーブル構造
productid varchar(15) いいえ
d0 varchar(100) いいえ
d1 varchar(100) はい NULL d2 varchar(100) はい NULL ....... d362 varchar(100) はい NULL d363 varchar(100) はい NULL d364 varchar(100) はい NULL d365 varchar (100) はい NULL
custnum varchar(50) いいえ
id int(50) いいえ
テーブル サプライヤーのテーブル構造
suppid varchar(50) No
name varchar(50) No
phone1 int(100) No
phone2 int(100) No
email varchar(100) No
add1 varchar(50) No
add2 varchar(50) No
city varchar(50) No
postcode varchar (10)
説明なし varchar(100) いいえ
テーブル vatgroup のテーブル構造
vat int(20)
金額なし decimal(20,0)
説明なし varchar(20) いいえ