- ベストアンサー
PHP+MySQLのショッピングカートについて
PHP+MySQLのショッピングカートについて 宜しくお願いします。 PHP4.4.1+MySQL4.1.15でショッピングサイトを構築しております。 このサイトはPCと携帯に対応させるように構築しております。 携帯でも購入出来る様にする為に、カートはCOOKIEでは無く、SESSIONに依存しております。 ユーザが商品を選択すると、SESSIONに商品IDや、ユーザの選択した内容が格納されます。 複数の商品ID、選択内容を格納させる為に多次元配列にて格納しております。 買い物が終わり決算する時に、個人情報を入力し、確認ページ表示後にMySQLのDBに個人情報と選択項目をそれぞれinsertしていきます。 商品情報については、カートに入れた商品数分を繰り返し処理を行い、1レコードずつinsertしていきます。 MySQLのDBに書き込み後、自動返信にてメールを店舗とユーザに送信しています。 この様なシステムで、問題が発生しております。 決算後、個人情報、商品情報が欠落している場合があります。DBにも自動返信メールにも明記されず、スッポリ無くなっているのです。 それも、全データではなく、個人情報の電話番号だけとか、商品情報の選択項目の1つだけといった具合です。 毎回ではなく、ときどき現れます。 これはプログラムの問題なのでしょうか?それとも、サーバの処理能力の問題で、同時アクセス時に起きている現象なのでしょうか? 私の環境下では何度テストしても現象が現れない為に、原因が分からず悩んでおります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
がると申します。 んと…テーブルの「nカラム中の1カラムだけ」が欠落しているのでしょうか? 考えにくいのですが…どちらかというとプログラム側なのではないかとは思うのですが、確証はないです(DBMSで"insertそのものがNGだった"可能性はともかく"insert中の1カラムだけがNG"は、かなり考えにくいです)。 とりあえず、ログなどをきっちりと取って、状況を把握されるのが先決かと思われます。 基本的には ・form情報をSESSIONなどに入れるタイミング ・SESSION情報を触っているタイミング ・SQL文 を一通りとられるとよろしいかと。 ただ、ログファイルがふくれあがるので、そのあたりはご注意ください。 有効な回答ではなくて申し訳ないのですが。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
>DBにも自動返信メールにも明記されず であれば、エラー処理として、DBに欠落データがあるかどうかを 判断するルーチンを組み込み自動返信メールにて 「欠落データが発生したため再入力が必要」の旨、送信すれば よろしいかと。 実際には、DBに登録されないのであれば、入力チェックの際に 欠落チェック処理をいれるだけでもいいかもしれません
お礼
お礼が遅くなりまして申し訳ございません。 恐らく、繰り返し処理が多くてSESSIONからデータがきちんと取り出せていなかった様な感じです。この繰り返し処理の部分をもっとキチンと見直してみます。 ありがとうございました!!
お礼
お礼が遅くなりまして申し訳ございません。 どうやら、プログラムの問題な様です。 もう少し考えてみます。 ありがとうございました!!