1

履歴テーブルに PHP-MYSQL クエリ (コード) が必要です。何をどのように行う必要があるかはわかっていますが、mysql クエリを作成する方法と、php ページにリストする方法がわかりません。以下は私が考え、実装したいものです。

私は製品テーブルを次のように持っています:product_table

id | cat_id   | Subcat |productname | weight    | assigned_to  | status_id
---------------------------------------------------------------------------
1  |   11     |   2    |     P1     | 5.8       |        8     |   1
2  |   12     |   3    |     P2     | 6.7       |        27    |   2

それらは、 add_date 、 update_date ..などの product_table の下のメインの列です。

ここで、Product テーブル (product_table)を挿入または更新すると、その新しい (挿入) レコードまたは更新レコードに関係なく、各レコードが次のように履歴テーブル (history_table)に挿入/更新されます。

*以下は、新しい値がproduct_table に挿入され、以下のように履歴テーブルの下にある場合のものです:*

id | pid   |  cat_id   | sub_cat   | old_value    |  new_value   | filed_name     | date_m  
---------------------------------------------------------------------------------------------------------
1  |  1    |   11      |   2       |     0        |     P1       |   productname  | 2014-01-17 05:05:21
2  |  1    |   11      |   2       |     0        |     5.8      |   weight       | 2014-01-17 05:05:21
3  |  1    |   11      |   2       |     0        |     8        |   assigned to  | 2014-01-17 05:05:21
4  |  1    |   11      |   2       |     0        |     1        |   status       | 2014-01-17 05:05:21

製品テーブルの下にある場合:レコード 1 が更新され、同じように履歴テーブル AS 以下に移動します。

id | pid   |  cat_id   | sub_cat   | old_value    |  new_value   | field_name    |  date_m 
--------------------------------------------------------------------------------------------------------
1  |  1    |   11      |   2       |     P1       |     P2       |   productname |  2014-01-18 03:05:22
2  |  1    |   11      |   2       |     5.8      |     5.4      |   weight      |  2014-01-18 03:05:22
3  |  1    |   11      |   2       |     8        |     7        |   assigned to |  2014-01-18 03:05:22
4  |  1    |   11      |   2       |     1        |     4        |   status      |  2014-01-18 03:05:22

したがって、id : 1 の履歴の製品ページを見ると、次のようになります。

     Date            | User  |     field_name       |  Change
-----------------------------------------------------------------------------------
2014-01-17 05:05:21  | admin |     productname      |       =>  P1
2014-01-17 05:05:21  | admin |     weight           |       =>  5.8
2014-01-17 05:05:21  | admin |     assigned to      |       =>  8
2014-01-17 05:05:21  | admin |     status           |       =>  1 

2014-01-18 03:05:22  | admin |     productname      |  P1   =>  P2
2014-01-18 03:05:22  | admin |     weight           |  5.8  =>  5.4
2014-01-18 03:05:22  | admin |     assigned to      |  8    =>  7 
2014-01-18 03:05:22  | admin |     status           |  1    =>  4

したがって、これは私が実装しようと考えているものですが、挿入および更新中にどのコード (mysql) を作成する必要があるかを取得していません。上で定義したように列ごとに。そして、履歴の時点で製品ページに表示する方法。

4

1 に答える 1

0

テーブルにAFTER INSERT TRIGGERとを作成します。AFTER UPDATE TRIGGERproduct_table

このリンクを確認してください

  1. トリガー構文の作成
  2. 履歴テーブルのトリガーを作成
于 2014-01-18T07:17:44.980 に答える