ホームページ  >  記事  >  バックエンド開発  >  PHP でクエリ レポートを作成する方法

PHP でクエリ レポートを作成する方法

WBOY
WBOYオリジナル
2016-06-23 13:34:011133ブラウズ

データベース: MSD
テーブル: PURTC、PURTD
PURTC のフィールド:


PURTD のフィールド:


----------------------- - -------条件付きエリア----------------------------------


-- -- ------------------------ データ表示エリア ------------------------ --- -------------


ソースコードを提供していただければ幸いです、ありがとうございます


ディスカッション(解決策)に返信

他に何もなければ、このデータベース設計は、私がコーディングしたものではありません

実際、これは Dingjie の Yifei ERP システムのデータベースです。私はただの初心者です。データベース設計の特徴を理解すると、コードを書きたいという欲求がかき立てられることがあります。

とても勉強になりました :)

他の人の ERP システムなので、作成者はそのデータ テーブル構造を見てみる必要があります

彼らのテーブル構造はよく知っていますが、私の問題はそうではないようですテーブルの構造に大きく関係します

「単一カテゴリ」を関連付けとして使用し、テーブルを結合してクエリします。


このデータ テーブルの設計には確かに問題があります
2 つのテーブルには数値型のフィールドが 1 つしかありません。
多くの列は実際には列挙値です。値が列挙値の場合、char 型または varchar 型として直接定義しないでください。 tinyint 型を使用してラベルを作成し、このテーブルに関連付けるテーブルを追加できます。

これにより、データの一貫性が保証され、数値型であるため、where 条件フィルターまたは関連キーとして使用できるため、クエリ速度が非常に速くなります。

これは設計パラダイムと大きく矛盾しており、実際の使用の観点からは何のメリットもありません。これは xx のシステムだからコードも優れているに違いないと考えないでください。特に国内のプログラムコード。

「単一カテゴリ」を関連付けとして使用し、テーブルを結合してクエリします。


このデータ テーブルの設計には確かに問題があります
2 つのテーブルには数値型のフィールドが 1 つしかありません。
多くの列は実際には列挙値です。値が列挙値の場合、char 型または varchar 型として直接定義しないでください。 tinyint 型を使用してラベルを作成し、このテーブルに関連付けるテーブルを追加できます。

これにより、データの一貫性が保証され、数値型であるため、where 条件フィルターまたは関連キーとして使用でき、クエリ速度が非常に速くなります...


分析、私の質問に基づいて詳細な情報を教えていただけますか? コード、私が本当に望んでいるのは、条件エリアのクエリ ボタンをクリックしたときに、入力した条件に基づいてクエリを実行するにはどうすればよいですか?
7 階の ShadowSniper からの返信を引用: 「単一カテゴリ」を関連付けとして使用し、テーブル クエリに結合します。


このデータ テーブルの設計には確かに問題があります
2 つのテーブルには数値型のフィールドが 1 つしかありません。
多くの列は実際には列挙値です。値が列挙値の場合、char 型または varchar 型として直接定義しないでください。 tinyint 型を使用してラベルを作成し、このテーブルに関連付けるテーブルを追加できます。

これにより、データの一貫性が保証されます。また、数値であるため...
投稿者はレポート タイプまたはクエリを必要としていますか? ? ?

はい、必要な関数は何ですか?

ここで設定した条件でクエリを実行し、結果データを取得してページ分割します


クエリは where サブステートメントを接続するだけです

Single select * from user where userid=?複数の select * from user where userid=? && username=?

より複雑な場合は、複数のテーブル クエリを使用します
データベースから必要なデータを取得する方法はあなた次第です。表示したい内容とそれをどのように処理したいか。ページング処理も含みます。

クエリ条件を動的に生成するだけではないでしょうか?

基本的なクエリ コマンド:

select * from PURTC, PURTD where tc001=td001 and tc002=td002
出力要件に従って調整します

フォームを投稿モードに設定し、フォーム オブジェクトはフィールドと同じ名前を持ち、送信ボタンに名前がありません
コードを生成します
$s = '';
foreach($_POST as $k=>$v) {
if(! empty($v)) $s .= " and $k=' $v'";
}
will $s はクエリと表示の基本コマンドに追加されます
合法性検証コードはご自身で追加してください

上の皆さんが言ってますよ~~投稿しましょう

でも私はまだしませんコード全体を投稿していただけますか?

お気軽にコメントしてください、ダウンロードするとポイントがもらえます

finereportのクエリ機能はコーディングなしで実装できると思いますので、必要に応じてfinereportを使って試してみるのが一番良いと思います〜

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。