質問 > 管理機能 > 基本情報管理>配送設定>配送時間 の追加時にエラー |
管理機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
mkhkck |
投稿日時: 2010/4/30 15:49
対応状況: −−−
|
一人前 登録日: 2009/7/18 居住地: 投稿: 98 |
Re: 基本情報管理>配送設定>配送時間 の追加時にエラー 済みません、この件、過去ログから、
置き換えるべきデータソースを書き換えて、 対応してみませんでしたが、 真っ白な画面になってしまいました。 ログの日付を見ると、かなり古いものだったので、 現在、どうしたらよいか対応策がわかる方はいらっしゃいませんでしょうか? EC-CUBEのバージョンは、2.4.3です。 よろしくお願い致します。 |
seasoft |
投稿日時: 2009/5/21 20:38
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 基本情報管理>配送設定>配送時間 の追加時にエラー チケットを発行しました。
http://svn.ec-cube.net/open_trac/ticket/472
|
seasoft |
投稿日時: 2009/3/30 13:31
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 基本情報管理>配送設定>配送時間 の追加時にエラー > 「time_idが別業者と被った状態でもそのまま登録されてしまい、
> 時間帯指定時に別業者の配送時間帯を引っ張ってきてしまう」という問題自体は、 > 私の環境(?)だけの不具合ということでしょうか。 当方 EC-CUBEコミュニティ(eccube-comu) で確認しておりますので、この違いによるものだと思います。 どちらにしても、不完全な処理ですが、不正なデータが登録されないだけ、EC-CUBEコミュニティの方がマシかなとは思いますが。 > 正しい設計方法など、まだまだ勉強不足です。 設計という作業は、システムや業務を広く把握していないと出来ないので難しいですよね。EC-CUBE のソースやこのフォーラムでの書き込みなどからも学ぶことは多いですね。
|
kuro |
投稿日時: 2009/3/30 13:13
対応状況: −−−
|
半人前 登録日: 2008/7/23 居住地: 投稿: 20 |
Re: 基本情報管理>配送設定>配送時間 の追加時にエラー seasoft様
ご返信誠にありがとうございます。 「time_idが別業者と被った状態でもそのまま登録されてしまい、 時間帯指定時に別業者の配送時間帯を引っ張ってきてしまう」という問題自体は、 私の環境(?)だけの不具合ということでしょうか。 正しい設計方法など、まだまだ勉強不足です。 ramrun様 情報をご紹介くださいましてありがとうございます。 EC-CUBE2.3.0から変更された部分なんですね。 修正前のeccube-2.2.0-betaでは少なくとも表面上問題なく動いているので、 とりあえずは変更された部分だけ古いバージョンのものに差し替えようかと思います。 |
ramrun |
投稿日時: 2009/3/27 14:38
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: 基本情報管理>配送設定>配送時間 の追加時にエラー
|
seasoft |
投稿日時: 2009/3/27 14:23
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 基本情報管理>配送設定>配送時間 の追加時にエラー 斜め読みで返信させていただいております。趣旨が異なりましたら、ごめんなさい。
個人的には、 PRIMARY KEY (deliv_id, time_id) で動作するように設計すべきではないかと思っております。 そして、シリアル(シーケンス、オートインクリメント)など使わずに、テキストボックスの何番目かを time_id に使用すれば、こんな面倒は無いのでは?と前々から感じています。 当方環境では、 > 「nextval('dtb_delivtime_time_id_seq'::regclass)」も上手く動いていないようです。 > (10個くらい登録した後でも最終値2のままです・・・) に関しては正常に動作しているのか、ページをリロードしていると登録されるようになります。なので、問題を放置していますが・・・ --- 確認バージョン --- EC-CUBEバージョン 2.3.0-comu PHPバージョン PHP 5.2.6 DBバージョン PostgreSQL 8.3.3
|
kuro |
投稿日時: 2009/3/27 13:27
対応状況: −−−
|
半人前 登録日: 2008/7/23 居住地: 投稿: 20 |
Re: 基本情報管理>配送設定>配送時間 の追加時にエラー -------------
EC-CUBEバージョン 2.3.2 PHPバージョン PHP 5.2.4 DBバージョン PostgreSQL 8.1.10 ------------- 上記環境で構築しておりますが、 管理画面からの配送時間帯登録で、既存の配送業者とtime_idが重複してしまう現象が起きます。 私の環境ではtime_idに主キーが設定されていませんでしたので、 重複した内容でも登録されてしまっています。 「nextval('dtb_delivtime_time_id_seq'::regclass)」も上手く動いていないようです。 (10個くらい登録した後でも最終値2のままです・・・) 別サーバでeccube-2.2.0-betaでも運営していますが、 そちらの方は最終値11で、time_idも被らず連続して登録されています。 tonton様の「$cnt*$deliv_id」のくだりを拝見してソースを確認したのですが、 「nextval('dtb_delivtime_time_id_seq'::regclass)」は実は使われてないのでしょうか・・・ また、「$cnt*$deliv_id」ではどうしてもtime_idが被ると思うのですが、問題はないのでしょうか・・・ 最初から「サンプル業者」というのが設定してあり、それのtime_idと被ってしまいますので、 「サンプル業者」を管理画面から削除して、かつdtb_delivtimeから直接サンプル業者の行を消さないと 正常に動きませんでした。 (time_idが被っているため、例えばB業者の14-16時を選択しても、 確認画面以降ではサンプル業者の午前を指定したことになっていたりしました。) time_idが被る場合、LC_Page_Shopping_Payment.phpの↓の部分で$whereにdeliv_idでの条件を加えないと 上記のような現象になってしまうと思います。 --------------------------------------------------------------------- ■LC_Page_Shopping_Payment.php --------------------------------------------------------------------- /* 配送時間文字列の取得 */ function lfGetDelivTimeInfo($time_id) { $objQuery = new SC_Query(); $where = "time_id = ?"; $arrRet = $objQuery->select("deliv_id, deliv_time", "dtb_delivtime", $where, array($time_id)); return (array($arrRet[0]['deliv_id'], $arrRet[0]['deliv_time'])); } --------------------------------------------------------------------- 他にこのような現象の起こった方はいらっしゃらないでしょうか? 管理画面周りは全くカスタマイズしていませんが、 まずは私の環境だけの不具合なのかを知りたいのです。 (そもそもtime_idが重複して登録されること自体がおかしいのかなど) こちらのトピックが近いかなと思ったので、書かせていただきました。 この件に関しまして、何かご存知の方がいらっしゃいましたら どうかアドバイスをいただけませんでしょうか。 |
tonton |
投稿日時: 2008/12/13 1:42
対応状況: −−−
|
仙人 登録日: 2008/8/14 居住地: 投稿: 437 |
Re: 基本情報管理>配送設定>配送時間 の追加時にエラー 私も現在配送業者の追加をしようとしているのですが、2つ目の宅配業者が登録できない状況です。
エラーコードでdtb_delivtimeへの登録エラーがでていますので、同様の現象ではないかと思います。 時間指定を入力しなければ、業者登録自体はできたので、時間指定のみ手動でphpMyAdminからデータを追加しようと試みたのですが、time_idが主キーに設定されており、時間指定の重複IDが登録できないので、どうしたら良いかわからなくて・・・ お分かりの方がいらっしゃいましたら、対応方法について教えいただけませんでしょうか。 どうぞ宜しくお願いします。 ------------- EC-CUBEバージョン 2.3.3 PHPバージョン PHP 5.2.6 DBバージョン MySQL 5.0.67-community-log ------------- 追記: とりあえず、主キーを削除し、time_idの重複登録を許可しました。どこかで問題があるのかもしれないのですが・・・ そうしてみると、$cnt*$deliv_idの処理は要らないような気がします。 そもそも、IDがかぶってしまうのに、倍倍処理をする意味があるのでしょうか? 主キーを活かさないといけないとすると、多分、ここが、1つの配送業者に割り当てられる時間指定数16の次から(つまり17から)連番で次の配送業者にtime_idを割り当てるようにならないといけないのでしょうね。そうすれば、飛び飛びながらも重複せずにtime_idを主キーにできるのでしょうけれど・・・ |
zen |
投稿日時: 2008/12/9 18:21
対応状況: −−−
|
新米 登録日: 2008/12/9 居住地: 投稿: 1 |
基本情報管理>配送設定>配送時間 の追加時にエラー はじめまして。
zen というIDで利用させていただいております。 若輩者ですが、よろしくお願い致します。 環境: EC-CUBE 2.3.1 MySQL 5.0.45 Apache/2.0.63 PHP 5.2.6 問題の画面: 基本情報管理>配送設定>配送時間 問題となる状況: 配送業者の『配送時間』を設定できる機能について質問です。 1.配送業者を登録する。 このとき、配送時間をいくつか(私の場合は4件ほど)登録しておく。 2.3件ほど、同様に配送業者を登録する。 3.1で設定した配送業者を編集モードで開く。 4.配送時間を新しく追記し、登録ボタンを押下する。 で、システムエラーが発生します。 自分なりに原因を調べてみると、 DBの dtb_delivtime で主キーである time_id について、重複して登録しようとしていることが原因のようです。 私の考察としては、 新規項目に対する主キー値の割り当てに関して、 ソースファイル: LC_Page_Admin_Basis_Delivery_Input.php $cnt * $deliv_id (166行目など) という値を利用していることが原因($deliv_id の公倍数で重複する)かと思いました。 そこで、応急処置として、 ・新規登録時には $deliv_id を指定しない ・dtb_delivtime テーブルにたいして、配送業者($deliv_id)について連番となる項目 pref フィールド(int(10))を追加 ・pref の値は、入力フォームのnameである、「"deliv_time".$cnt」の$cntと対応 ・編集時、対症項目へのアクセスキーとして、 -- 既存:deliv_id = ? AND time_id = ? -- 対処:deliv_id = ? AND pref = ? と変更を行いました。 サイト内の検索にて、同様の症状を見つけることができませんでしたが、既にパブリックな解決策が提案されていれば教えていただきたいと思います。 よろしくお願い致します。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |