• ベストアンサー

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つだけといった具合です。 毎回ではなく、ときどき現れます。 これはプログラムの問題なのでしょうか?それとも、サーバの処理能力の問題で、同時アクセス時に起きている現象なのでしょうか? 私の環境下では何度テストしても現象が現れない為に、原因が分からず悩んでおります。

  • nikuq
  • お礼率75% (477/631)
  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 んと…テーブルの「nカラム中の1カラムだけ」が欠落しているのでしょうか? 考えにくいのですが…どちらかというとプログラム側なのではないかとは思うのですが、確証はないです(DBMSで"insertそのものがNGだった"可能性はともかく"insert中の1カラムだけがNG"は、かなり考えにくいです)。 とりあえず、ログなどをきっちりと取って、状況を把握されるのが先決かと思われます。 基本的には ・form情報をSESSIONなどに入れるタイミング ・SESSION情報を触っているタイミング ・SQL文 を一通りとられるとよろしいかと。 ただ、ログファイルがふくれあがるので、そのあたりはご注意ください。 有効な回答ではなくて申し訳ないのですが。

nikuq
質問者

お礼

お礼が遅くなりまして申し訳ございません。 どうやら、プログラムの問題な様です。 もう少し考えてみます。 ありがとうございました!!

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>DBにも自動返信メールにも明記されず であれば、エラー処理として、DBに欠落データがあるかどうかを 判断するルーチンを組み込み自動返信メールにて 「欠落データが発生したため再入力が必要」の旨、送信すれば よろしいかと。 実際には、DBに登録されないのであれば、入力チェックの際に 欠落チェック処理をいれるだけでもいいかもしれません

nikuq
質問者

お礼

お礼が遅くなりまして申し訳ございません。 恐らく、繰り返し処理が多くてSESSIONからデータがきちんと取り出せていなかった様な感じです。この繰り返し処理の部分をもっとキチンと見直してみます。 ありがとうございました!!

関連するQ&A

  • 学校の授業で困っていることがあります。PHP+MySQLでショッピング

    学校の授業で困っていることがあります。PHP+MySQLでショッピングサイトを構築しているのですが、カートの在庫処理の部分で疑問が発生しました。 私たちのショッピングサイトは、カートに商品を追加した時点で、DBの在庫テーブルの販売数を増やし、在庫数に即時に反映させたいと考えています。 しかし、ブラウザを閉じた時やセッションタイムアウト時、ログアウト時に確定していないカートの商品については販売数を元に戻したいのです。 ログアウト時は明示的に行えると思うのですが、セッションタイムアウト時、ブラウザを閉じた時の処理はどのようにすればいいのですか? そのようなイベントを取得するメソッドや方法はないのでしょうか? 参考サイトや方法を教えてください!

    • ベストアンサー
    • PHP
  • ショッピングカートのセッション処理について。

    いつも拝見し大変お世話になっております。 現在ショッピングカートを作成しておりますが、商品購入画面から”購入する”のボタンを押したときに、購入する商品ID,注文数量、サイズ、商品価格をセッションとして 格納したいのですがうまくいかず困っております。 使用PHPバージョンは4.4です ソースは以下のとおりです。 //購入するのボタンを押したときの処理 if (isSet($_POST['cart']){ $_SESSION['cart'][$_POST(商品コード)] =+$_POST(商品価格); //↑セッション格納ここまで //(テスト)格納したデータを表示 print_r($_SESSION['cart']); } いろいろと調べて該当する商品コードと値段は 格納することができたのですが、その他の商品購入数などをデータにさらに格納する時どうすればいいかわかりませんでした。 お忙しい中大変申し訳ございませんがお知恵をお貸しいただけますでしょうか?よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ショッピングカートを自作すべきか否か

    現在PHPとMYSQLを使用、商品検索までできるサイトを持っています。そのサイトにショッピングカートを付け加えたいのですが、レンタルすべきか、自作すべきかを迷っています。下記懸念事項をごらんになった上で、アドバイスをいただきたく思います。よろしくお願いいたします。 <レンタルの際の懸念事項> ・現在のサイトとの連携が可能か。いかにもレンタルしました、というようなツギハギページになる懸念 ・商品情報、顧客情報を記録したDBがバラバラ(前者は私のDB、後者は業者のDB)となり、管理が難しくなる懸念 <自作の際の懸念事項> ・セキュリティ面で問題のないショッピングカートを初心者の私が作成することが可能か、可能であっても相当な期間を要することを懸念(現時点ではPHP暦3ヶ月です)

  • ショッピングカートの製作

    ショッピングカートのような物を製作したいのですが、うまく動きません。 仕様としては、 1: 商品の仕様(オプション)がいくつかあり、ラジオボタンを使った選択式 2: 同じウインドウ内で決算金額を確認でき、選択したオプションによってその都度、決算金額が変わる 何か参考になるようなページやサンプルなど無いものでしょうか?

  • ショッピングカートについて

    以前も同じような質問をさせて頂きましたが、 また迷っておりますので力をお貸してください。 今、ホームページをリニューアルしているのですが、 今回初めてショッピングカートを付けてみようと思っています。 そこで、おすすめのショッピングカートを教えていただけますでしょうか?(過去の質問だけでも)数が多くありすぎて、ネット初級者の私はイマイチ絞りきれません。 簡単な条件は下記の通りです。 ●利用料は月々約3000円以下。 ●オーダーメイド商品を扱う為、商品のオプション選択(色やサイズの選択・テキスト入力・ラッピング料の設定)が充実(最低5項目以上)。 ●電話でのサポート有り。 ちなみに、「e-shopsカート」というところがいいなと思っていたのですが、商品のオプション選択に制限(3項目)があったので、別のものを探しています。 何卒よろしくお願いします。

  • mysql+phpをつかったカートつくり。

    こんにちは、php+mysqlを勉強しだして。日が浅いです。 いき詰まりました。どなたかおしえてください。いろいろとサイト検索してみたんですけど みつかりません。 ショッピングカートを作ろうとおもっています。 ーーー中略ーーー while($rec = mysql_fetch_array($result,MYSQL_ASSOC)){ print "<form name=\"form1\" method=\"POST\" action=\"link1_1.php\">"; print "<tr><td>"; print $rec['id']; print "</td><td>"; print $rec['cid']; print "</td><td>"; print $rec['pr']; print "\\</td><td>"; print "<select name=\"mny\"><option value=\"1\">1</option>"; print "<option value=\"2\">2</option>"; print "<option value=\"10\">10</option>"; print "</select></td><td>"; print "<input type=\"submit\" name=\"cart\" value=\"カートへ\">"; print "<td/></tr></from>"; } print "</table>"; 上記の文で、while文をつかって 商品を表示させることはできました。 問題は、 カートがおされたときの処理ができません;; カートの値はどうやって 設定したらよいのでしょうか?  うまく表現できなくて すみません。 if(isset($_POST['cart'])){  //カートがおされたとき $sql = "select max(ju_id) from table1";//最大値を取得 $result = mysql_query($sql); $row = mysql_num_rows($result); if($row != 0) { $ary = mysql_fetch_array($result); $ju_id = $ary[0] + 1; //$number = $ary[0] + 1;// 登録レコードのを生成 } $sql = "insert into jucyu set ju_id = $ju_id "; } 商品を表示させて、個数等指定して、カートへを 押したら、 一回目は表示されるんですが、うまく、mysqlへ書き込みができません。  うまく表現できなくて すみません。

  • ショッピングカートについて

    個人店をもちたい為にショッピングカートを設置しようかと 思っています。 しかしながらいろいろありすぎて、 どれにしようか迷っているところです。汗。 『これはオススメだ』、というところがあれば どういうところがオススメなのかなど教えていただければと 思います。 私が欲しいと思っている機能ですが ・個人情報をCSVで出力することができる ・クレジット決済が簡単に行える(契約をむすばなくてもよい) などです。Estoreは、やや割高ですがいいかなぁと 思っていますが・・・やはり割高なので もう少しやすくいいところがあればぜひ教えてください! ショップギアもいいという回答も多いようですね。

  • ショッピングカートの作成しようと思ってます。

    今ショッピングカートの商品を選んでカートに入れたのち別のページに飛ばして精算させるプログラムを作ってますがプログラムがうまく作動しません。 ショッピングカートのプログラムは <?php if (isset($_POST['cart'])){ $_SESSION['cart'][$_POST('code')] += $_POST('num'); print "<p>カートに入れました。</p>\n"; } else if ($_POST['delete']) { $_SESSION['cart'] = array(); print "<p>カートを空にしました。</p>\n"; } ?> 精算プログラムのエラー箇所は以下の感じです。 foreach ($_SESSION['cart'] as $code => $num) { $rs = mysql_query($con, "select * from member7 where code=$code"); $row = array($rs); $ss = $num * $row['tanka']; print "<tr><td>{$row['name']}</td><td>{$row['tanka']}円</td><td>$num</td><td>{$ss}円</td></tr>\n"; $sum += $ss; } 長ったらしいですが解決策を教えてくださればと思います。 PHPは5.2.0を使用してください。

    • ベストアンサー
    • PHP
  • ショッピングカートの合計金額を求めたい…。

    お世話になります。 ショッピングカートを作っているのですが、購入商品を一覧表示させて その商品数と、合計金額を表示させたいのですが色々試しましたが いい方法が思い浮かびません…。 初心者なのですが、どなたか宜しくご教授お願いします。 ちなみに、ArrayListに購入商品を格納し、それをセッションに セットしてます。 購入商品の各項目には、商品番号・商品名・価格・購入個数があります。 説明不足であればスグに捕捉致します。

    • ベストアンサー
    • Java
  • ショッピングカートのプログラムでDB使いますか?

    ショッピングサイトでカートを作る際、サーバのセッションに商品IDなどを持たせますか?それともtmpDBなどに一時的な情報を持たせますか? サイトの規模や種類、アクセス数、ハードウェアなどにより状況は異なると思いますが、一般的にどちらが多いのでしょうか?

専門家に質問してみよう