バージョン選択

フォーラム

メニュー

オンライン状況

69 人のユーザが現在オンラインです。 (55 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 69
もっと...

サイト内検索

質問 > フロント機能 > $sqlvalの記述で上書きでなく、DBの同一フィールド内に付け加える設定にしたいです。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kenz
投稿日時: 2016/10/8 22:33
対応状況: −−−
常連
登録日: 2010/6/8
居住地:
投稿: 46
$sqlvalの記述で上書きでなく、DBの同一フィールド内に付け加える設定にしたいです。
お世話になります。

あるphpファイルで$sqlval['login_user'] = $_SESSION['login_name'];という記述を使用し、ログインしたユーザーをDBのフィールドlogin_userに挿入する設定にしております。

質問させて頂きたいことは、この記述ですと2回目以降のログインユーザー名が1回目のログインユーザー名をDBのフィールド内で上書きします(まったく異なるユーザーがログインできる設定になっています)。

それを上書きすることなく、DBの同一のフィールド内にログインユーザー名を新しい順に付け足していき、サイト上では最も新しいログインユーザー名をひとつ表示するという設定にすることは可能でしょうか(最終的な目的はサイト上で最新のものと同様に全てのログインユーザーを表示できるようにしたい)。

$sqlvalの記述を変更するべきなのかと考えておりますが、どうすればよろしいかご教示頂けませんでしょうか。

EC-CUBE:3.0.1
データベース: MySQL 5.0.77
OS:Linux p47.
PHP: 5.2.9
WEBサーバ: Apache/2.2.3
umebius
投稿日時: 2016/10/8 22:50
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: $sqlvalの記述で上書きでなく、DBの同一フィールド内に付け加える設定にしたいです。
上書き(UPDATE)ではなくレコードをINSERTすると問題ございますでしょうか?
>DBの同一のフィールド内にログインユーザー名を新しい順に付け足していき

状況がよく飲み込めませんが、ログイン記録を残すのであれば、通常同一のフィールドに付け足すよりは、行を追加していくかと思います。


なお、$sqlval['login_user'] = $_SESSION['login_name'];周辺のコードを書いていただかないとこれだけでは判断が困難かと思います。


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

kenz
投稿日時: 2016/10/9 1:25
対応状況: −−−
常連
登録日: 2010/6/8
居住地:
投稿: 46
Re: $sqlvalの記述で上書きでなく、DBの同一フィールド内に付け加える設定にしたいです。
umebius様

簡略化しすぎていて申し訳ございません。

LC_Page_Admin_Products_Product.phpのfunction lfRegistProductを利用してdtb_productsと同様のテーブルに新規作成したフィールドlogin_userにデータをinseartしております。

そのような状況のなか、全てのログインユーザーのログイン履歴が必要なため前回の様な質問をいたしました。

前回の様な質問の例は技術的に可能でしょうか。可能な場合、具体的にどのファイルを変更しなければいけませんでしょうか。

またこの様なケースの場合、umebius様がおっしゃられている様な方法ではどのような設定にしなければいけないのでしょうか。(新たにテーブルを作成しなければいけないのでしょうか。)
umebius
投稿日時: 2016/10/9 20:07
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: $sqlvalの記述で上書きでなく、DBの同一フィールド内に付け加える設定にしたいです。
目的は、管理画面で商品の登録・編集を行った管理ユーザーの履歴を残したいということでよろしいでしょうか?

だとするとlfRegistProductメソッドは新規登録部分と既存のデータの更新部分にわかれるかと思いますので、
既存のデータの更新部分で
$login_user = '付け足すログインユーザー';
$sqlval['login_user'] = $arrRet['login_user'] .':'. $login_user;
というように付け足せば良いように思います(未検証です)

1つのフィールド内でどんどん増えれば良いなら特にテーブルを作成する必要はないですね。


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

kenz
投稿日時: 2016/10/17 2:17
対応状況: −−−
常連
登録日: 2010/6/8
居住地:
投稿: 46
Re: $sqlvalの記述で上書きでなく、DBの同一フィールド内に付け加える設定にしたいです。
umebius様、

おかげさまで、フィールド内にデータが蓄積さています。感謝いたします。

ただそのデータが全てテンプレート上で表示されてしまいます。

これを直近のデータだけが表示されるようにするにはどうしたら宜しいかお分かりになりますでしょうか。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,720名です
総投稿数は109,953件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1286
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.