ショッピングカートの作成 - PHPプロ!Q&A掲示板

347

  • 0P

ショッピングカートの作成

質問日時 / 2007年2月6日 13:23    回答数 / 4件

Questioner:  nainai446  このエントリーをはてなブックマークに追加 

キーワード / ショッピングカート    PHP    プログラミング   

今ショッピングカートを作成しようとしていて商品サンプルがいくつかあり「カートへ」ボタンを押すと精算ページへ飛び精算を行うというプログラムをつくっているのですがいくつかのサンプルでどれを選んでも一番上のサンプルの精算しか行えません。どうすれば解決できますでしょうか?よろしくお願いします。
ショッピングカートのプログラムの一部です。
while($row = mysql_fetch_row($result)){;
$code = $row['0'];
print "<form method='post' action='cart_syohin2.php'><tr>";
print "<td rowspan='2'>";
if (file_exists("cart_image/$code.jpg")) print "<img src='cart_image/$code.jpg' border='0'>";
print "</td>";
print "<td rowspan='3'>{$row['3']}</td>";
print "<td nowrap>{$row['2']}円</td></tr>";
print "<tr><td nowrap><input type='text' name='num' size='3'>個</td></tr>";
print "<tr><td>{$row['1']}</td>";
print "<td><input type='hidden' name='code' value='$code'><input type='submit' name='cart' value='カートへ'>";
print "</td>";
print "</tr></form>\n";
}

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01seeker正確にはどのような状況なのでしょうか? ① 上記の
┃┗A01-1QWWER741この意見は管理者によって削除されました。
┣A02nainai446精算は別のページに飛びそこで精算を行うという感じで
┃┗A02-1eduteコードを見る限り $_SESSION['cart']の中に、キー
┗A03nainai446なんとか完成させることができました。ありがとうござ

回答一覧

並び替え:

A01 参考になった
answererseeker [2月6日 17:56]

正確にはどのような状況なのでしょうか?

① 上記のコードで一括して購入情報をカート(cart_syohin2.php)へ送信したいのか、
② カート(cart_syohin2.php)へ1つずつ情報を送信し、それを保存しておきたいのか、
③ それ以外のことなのか、
(おそらく②だとは思いますが)

①の場合、書き出されたHTMLが間違っています。1つのFORMタグで全てのINPUTタグを囲み、submitボタンを1つにすればいいでしょう。
②の場合、cart_syohin2.phpでセッションを使えば解決します。送信されてきたデータを$_SESSIONに格納し、保存しておきます。精算後にセッションを消せばOKでしょう。

詳しい状況と、他のコードがわからないので、これくらいしか言えません。

この意見に回答する

ツリーへ TOPへ

A01-1
replyerQWWER741 [2月22日 14:42]

この意見は管理者によって削除されました。

ツリーへ TOPへ

A02
answerernainai446 [2月7日 10:47]

精算は別のページに飛びそこで精算を行うという感じですね。精算のプログラムの一部は。 
$sum = 0; 
foreach($_SESSION['cart'] as $row => $num) { 
$result = mysql_query('SELECT code,name,tanka,explanation FROM cart_syohin2'); 
$row = mysql_fetch_row($result); 
$ss =1.05 * $num * $row['2']; 
print "<tr><td>{$row['1']}</td><td>{$row['2']}円</td>"; 
print "<td>$num</td><td>{$ss}円</td></tr>\n"; 
$sum += $ss; 

print "<tr><td colspan='2'> </td><td>合計</td><td>{$sum}円</td></tr>\n"; 

です。

こうなってほしいのですが・・。
商品購入ページは。

商品1 100円
   個 ←ここにほしい数を入力する
説明1 カートへ
商品2 150円
   個
説明2 カートへ


精算ページは
商品名 単価   個数 合計
商品1 100円  個  円
商品2 150円  個  円

合計          円

表がないので少しわkりにくいでしょうが

この意見に回答する

ツリーへ TOPへ

A02-1 満足
replyeredute [2月8日 13:46]

コードを見る限り

$_SESSION['cart']の中に、キーを商品コード、値に購入個数を保持しているものと思われますが、
  1. $result = mysql_query('SELECT code,name,tanka,explanation FROM cart_syohin2');
この部分で、何故か該当商品のみならず、商品全体をSELECTしている事が気になります。
単価計算をしたいようなので、WHERE code=値 みたいな記述が必要ではないでしょうか。

また、foreach関数の最初のところで、as $row => $numと書いてありますが
SQLの結果を$rowで上書きしてしまっています。
期待した動作をされているでしょうか?

上記だけでは問題解決はされないと思いますが、それより以前、
色々な他の問題が重なっているように見受けられます。
怪しい所を一つ一つ潰していってみてはいかがでしょう。

この意見に回答する

ツリーへ TOPへ

A03
answerernainai446 [2月9日 00:04]

なんとか完成させることができました。ありがとうございます。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
動的なURLを静的に見せる方法
 このエントリーをはてなブックマークに追加 
A
普通に考えて、mod_rewrite でしょうね。 http://www.nishishi.com/blog/2006/01/mod_rewrite_url.html...

>>続きを読む

GETのままでは検索エンジンのロボットが拾ってくれなかったためにSEO対策として有効だと言われていますね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)