プログラム詳しい方で時間があるかたおりましたら、コードをチェックして頂ければと考えております。
現在ショッピングカートのシステムを作成しております。
下記が今回作成したページになります。
★商品購入ページ
URL:http://oskuni7.sakura.ne.jp/hatena/question1/hanbai.php
コード:http://oskuni7.sakura.ne.jp/hatena/question1/hanbai.txt
★ショッピングカートの中身
URL:http://oskuni7.sakura.ne.jp/hatena/question1/cart_nakami.php
コード:http://oskuni7.sakura.ne.jp/hatena/question1/cart_nakami.txt
今回は
●商品の購入ボタンを押すとカートの確認画面で商品がきちんと追加される。
●削除ボタンを押して削除される。
という一連の動作をスムーズに出来ることを目標として作成しました。
しかし、問題点が幾つか発生しており
★問題1 初めて扱う二次元配列で、Warning: Cannot use a scalar value as an arrayというエラーが発生。
★問題2 数多く追加と削除を繰り返す際、どのようにプログラムを組めば効率的か?
といった問題点を抱えております。
ご回答頂いた方多めにポイントを支払わせて頂ければと考えております。
どうぞよろしくお願いいたします。
基本的な設計がまずいので,これをベースに修正するより,他のアプリケーションのコードを見て勉強されるのが良いと思いますが,このコードを使う前提でいくつか気づいた点を上げておきます
まず,セッションの使い方ですが,セッションは一度スタートすればいいので,各商品リスト取り扱いの中の session_start() は不要です
配列ですが,例えば,
$_SESSION['TABLE'][0]['TITLE'] = '商品1'; $_SESSION['TABLE'][0]['PRICE'] = '12000'; $_SESSION['TABLE'][1]['TITLE'] = '商品2'; $_SESSION['TABLE'][1]['PRICE'] = '7800'; <|| となっていれば,$_SESSION['TABLE'] の要素数を数えれば (count()関数),テーブルの列数は分かりますから,インクリメントなどの処理は必要ありません 商品を複数扱うのであれば, >|PHP| $products = array( 'a1' => array( 'title' => '商品1', 'price' => '12000', ), 'a2' => array( 'title' => '商品2', 'price' => '7800', ), );
といった配列を使って一気に管理できますから,ハードコーディングよりスムーズにコードを書けると思います
具体的に言えば,この配列は,
$products['a1']['title']; //商品a1の名前 $products['a2']['price']; //商品a2の値段
といった具合にアクセスできますので,これをうまく使えば,同じようなコードを何個も書く必要は無いし,商品を増やすときは,配列を管理するだけでいいですよね
複雑なショッピングカートのプログラムを見ても参考にならないだろうし,逆に戸惑うと思いますので,まずはシンプルで良いので,きちんと書かれたアプリケーション(サンプルレベルのプログラムではなく)のソースコードを,疑問点が一個もなくなるまで徹底的に読み込むと勉強になると思います
すいません.アドバイスしようと思いましたが,とりあえず動作しませんでした
コードは,txt ではなく,phps にすると見やすいと思います
動くようになったら,コード見ながらアドバイスできるかもしれません
ご回答ありがとうございます。
拡張子phps に設定させて頂きました。
★商品購入ページ
http://oskuni7.sakura.ne.jp/hatena/question1/hanbai.phps
★ショッピングカートの中身
http://oskuni7.sakura.ne.jp/hatena/question1/cart_nakami.phps
phpsファイルにすると色が付くと書いてあったのですが色が反映されていないのは何か問題があるのでしょうか。(私側で確認したところ色が反映されておりませんでした)
基本的な設計がまずいので,これをベースに修正するより,他のアプリケーションのコードを見て勉強されるのが良いと思いますが,このコードを使う前提でいくつか気づいた点を上げておきます
まず,セッションの使い方ですが,セッションは一度スタートすればいいので,各商品リスト取り扱いの中の session_start() は不要です
配列ですが,例えば,
$_SESSION['TABLE'][0]['TITLE'] = '商品1'; $_SESSION['TABLE'][0]['PRICE'] = '12000'; $_SESSION['TABLE'][1]['TITLE'] = '商品2'; $_SESSION['TABLE'][1]['PRICE'] = '7800'; <|| となっていれば,$_SESSION['TABLE'] の要素数を数えれば (count()関数),テーブルの列数は分かりますから,インクリメントなどの処理は必要ありません 商品を複数扱うのであれば, >|PHP| $products = array( 'a1' => array( 'title' => '商品1', 'price' => '12000', ), 'a2' => array( 'title' => '商品2', 'price' => '7800', ), );
といった配列を使って一気に管理できますから,ハードコーディングよりスムーズにコードを書けると思います
具体的に言えば,この配列は,
$products['a1']['title']; //商品a1の名前 $products['a2']['price']; //商品a2の値段
といった具合にアクセスできますので,これをうまく使えば,同じようなコードを何個も書く必要は無いし,商品を増やすときは,配列を管理するだけでいいですよね
複雑なショッピングカートのプログラムを見ても参考にならないだろうし,逆に戸惑うと思いますので,まずはシンプルで良いので,きちんと書かれたアプリケーション(サンプルレベルのプログラムではなく)のソースコードを,疑問点が一個もなくなるまで徹底的に読み込むと勉強になると思います
ご回答ありがとうございます。
ご回答ありがとうございます。