質問 > 管理機能 > 規格の編集でエラーが出ます |
管理機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
468 |
投稿日時: 2020/5/14 19:11
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格の編集でエラーが出ます >本来point_rateが当てはまるところに他の項目から数値を引っ張っているのでは?と思ったのですが、この考え方はおかしいでしょうか。
可能性は無いとは言えませんので、実際にソースを追って確認されてみては如何でしょうか? INSERT文を実行しているのは LC_Page_Admin_Products_ProductClass.php 279行目付近の $objQuery->insert('dtb_products_class', $arrPC); の記述かと思います。 値は$arrPCの配列で渡していると思いますので $arrPCの中がどうなっているか遡って確認してみてください。
|
K.M |
投稿日時: 2020/5/14 16:20
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
Re: 規格の編集でエラーが出ます 同じpoint_rateというカラムでも、関係があるとは限らないということですね。
ありがとうございます。 結局いまだ解決できず、情報をかき集めながらデバッグ情報を確認しております。 何度見てもpoint_rateにnullは入っておらず、解決の糸口が見えません。 SQLの知識に疎くて申し訳ないのですが、 SQL: [INSERT INTO dtb_products_class(classcategory_id1,classcategory_id2,product_code,stock,price01,product_type_id,down_filename,down_realfilename,product_id,sale_limit,deliv_fee,point_rate,stock_unlimited,price02,creator_id,update_date,del_flg,create_date,product_class_id) SELECT $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,CURRENT_TIMESTAMP,$16,CURRENT_TIMESTAMP,$17] PlaceHolder: [array ( 0 => '264', 1 => '0', 2 => '', 3 => '', 4 => '', 5 => '1', 6 => '', 7 => '', 8 => '508', 9 => NULL, 10 => NULL, 11 => NULL, 12 => 0, 13 => 0, 14 => '2', 15 => 1, 16 => 3916, )] ここの部分が気になり、項目数を確認しました。 INTO指定している項目は classcategory_id1, classcategory_id2, product_code, stock, price01, product_type_id, down_filename, down_realfilename, product_id, sale_limit, deliv_fee, point_rate, stock_unlimited, price02, creator_id, update_date, del_flg, create_date, product_class_id の19項目、 SELECTで指定している項目も $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 CURRENT_TIMESTAMP $16 CURRENT_TIMESTAMP $17 の19項目なのですが、 PlaceHolderで表示されている数値は17項目です。 point_rateが12番目に該当するのですが、PlaceHolderでの12番目はNULLになっており 本来point_rateが当てはまるところに他の項目から数値を引っ張っているのでは?と思ったのですが、この考え方はおかしいでしょうか。 もし上の仮定が正しい場合、このpoint_rateがどこから数値を引っ張っているのか確認するためには 何処を見ればよいのか、お教えいただけないでしょうか。 長文で申し訳ございません。よろしくお願いいたします。 |
468 |
投稿日時: 2020/5/13 9:10
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格の編集でエラーが出ます dtb_order_detailテーブルの設定は商品規格の編集画面のエラーには関係ないとは思います。
ただ、あくまでお聞きしている範囲での予想ですので絶対関係無いのかと言われると保証は致しかねます。
|
K.M |
投稿日時: 2020/5/12 10:16
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
Re: 規格の編集でエラーが出ます 実は数年前、サーバが急に移転を行ったせいでEC-CUBEが稼働しなくなり、旧サーバからデータを引っこ抜いて現サーバへ移動し、原状回帰を試みて再構築したということがありました。
EC-CUBE自体の再構築は比較的問題なくできたそうですが、元のDBはMySQLだったところからPosgleSQLでないと対応ができないという状況になり、データの移行を行ったようです。 当時、その作業に携わった担当の内、DBに携わったものが退職したため、詳細の確認はできませんでした。 ですが、EC-CUBE側(html)の担当者によると、DBの構造は変えていないと聞いているそうなので、データの入力をした際にdefault 0がNullに代わってしまったのではないかと考えております。 実際のところ、ポイント付与の機能は使っておりません。 そしてカラムの中を確認すると point_rate/count 0/20 NULL/1675 となっており、もとからdefault 0で使用されていたのではないかと考えております。 今回のエラーには問題ないpoint_rateということでしょうか? |
468 |
投稿日時: 2020/5/11 19:17
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格の編集でエラーが出ます デフォルトのデータベースで確認する限りでは
dtb_order_detailのpoint_rateはnot nullでdefault 0が設定されているようです。 dtb_order_detailテーブルは商品規格ページの変更には直接は関係ないと思いますが もしかしたら、最初の商品登録をSQLで直接実施されたりしましたか? その時にpoint_rateをnullで登録されたりしたのでしょうか? その後、注文時のエラー解消の為にdtb_order_detailテーブルpoint_rateカラムのnot nullも変更されたという可能性があるのでしょうか? 現状、受注関連で支障がないのであれば、dtb_order_detailテーブルの定義は変更しないほうが良いのではないでしょうか? 注文が通らなくなったりするのは一番困るのではないでしょうか?
|
K.M |
投稿日時: 2020/5/11 15:39
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
Re: 規格の編集でエラーが出ます 何度もご返答ありがとうございます。
商品のデータの確認がうまくできず、問題は解消されないままでした。 上記の規格変更の件ですが、何も変更しないまま確認を押しても同じエラーが出る状態だということが判明しました。 そこでpoint_rateだけでカラムを検索し、調べたところ dtb_order_detailのpoint_rateがnotnullになっておらず、大量のnullが登録されていました。 これは関係がありますでしょうか? もしこのnullを0に修正し、notnull設定をするのであれば、SQLでnull→0への置換作業を行う必要があるということになりますでしょうか?(1000件以上のnullがあったので…) 知識不足で誠に申し訳ございませんが、ご教示いただければ幸いです。 よろしくお願いいたします。 |
468 |
投稿日時: 2020/5/8 23:50
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格の編集でエラーが出ます 投稿された画像だけを見れば、特に問題無いように見えますが
全てのデータが確認できるわけではないので何とも言えません。 規格が編集できない商品のデータはどのようになっていますか? そこはご自身で確認していただくしかないかと思います。
|
K.M |
投稿日時: 2020/5/7 19:26
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
Re: 規格の編集でエラーが出ます 詳しいご返信ありがとうございます!
確認しましたところ、規格が10種類の登録に対し、レコードが画像のようになっておりました。 これはおそらく、異常な状態…ということでしょうか? http://www.mediafire.com/file/zunkn63ygqxi9lp/03.JPG 逆に件数が膨大な数があるようで、どのような対処をしていけばよいのか ご教示いただければ幸いです。 よろしくお願いいたします。 |
468 |
投稿日時: 2020/5/7 17:51
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格の編集でエラーが出ます >この辺りのレコードが辻褄が合わない状態になっていませんか?
データベースの定義ではなく、データがおかしくなっていませんか?という意味になります。 ざっくりとした例えですが 商品規格でカラー「白」「黒」の2種類のデータを登録している場合、 dtb_products_classテーブルでは3行のレコードがある状態が正しい状態です。 product_class_id=1, product_id=1, classcategory_id1=0, classcategory_id2=0 product_class_id=2, product_id=1, classcategory_id1=1(白), classcategory_id2=0 product_class_id=3, product_id=1, classcategory_id1=2(黒), classcategory_id2=0 それが何かしらの理由で product_class_id=2, product_id=1, classcategory_id1=1(白), classcategory_id2=0 product_class_id=3, product_id=1, classcategory_id1=2(黒), classcategory_id2=0 のように2行だけになっていませんか?
|
K.M |
投稿日時: 2020/5/7 15:58
対応状況: −−−
|
半人前 登録日: 2019/10/3 居住地: 投稿: 12 |
Re: 規格の編集でエラーが出ます 早速のご返信ありがとうございます。
>この辺りのレコードが辻褄が合わない状態になっていませんか? >(例えば$arrDefaultの結果がnullになってしまうような状態) phpの記述はデフォルトからいじっていない様です。 DBでclasscategory_id1,classcategory_id2に該当するカラムは2つ見つかり そちらの設定は データ型:integer NOTNULL:NOTNULL デフォルト:0 検査制約:1 となっております。 http://www.mediafire.com/view/uyny48dgxzyiiae/01.JPG/file この設定は何かおかしい状態でしょうか? >tax_rateについて こちらの記述に関しても、デフォルトから変えていないように思います。 282行目から、 // 税情報登録/更新 if (OPTION_PRODUCT_TAX_RULE) { SC_Helper_TaxRule_Ex::setTaxRuleForProduct($arrList['tax_rate'][$i], $arrPC['product_id'], $arrPC['product_class_id']); } } という記述になっております。 http://www.mediafire.com/view/4jtzznrh86jwtn7/02.JPG/file こちらはDB上の問題ではなく、phpの記述がおかしいということでしょうか。 お手数をかけて申し訳ございませんが、よろしくご確認のほど、お願いいたします。 |
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |