セッション
はじめに
PHP で独自のショッピング バスケットをまだ実装していない場合は、この記事を読んだ後に作成できるはずです。すでに買い物かごを
持っているかもしれません。ここで提供したヒントのいくつかがシステムの改善に役立つかもしれません。
ショッピング バスケット テーブルへの無限のクエリを減らすため、またはファイル システムを満たす無限のテキスト ファイルを減らすために何をすべきかについてのヒントをいくつか紹介します。アプリケーションはそれを行うだけで、削除はしないからです。 。
この種の質問が初めての方でも、心配する必要はありません。これは実際には非常にシンプルで効果的です。必要なのは、php4 をサポートするホスト、
メモ帳や vi などの HTML エディター、貴重な数分間、そしてこの小さな例だけです。
アイデア
1998 年、金物店で働いていた友人から、オンライン ストアのコーディングを依頼されました。高速かつシンプルである必要がありますが、
オンラインで管理する必要もあります。 39 度の熱を出したとき、クリエイティブになりたかったので、バックエンドとして minisql
を使用して、perl でそれを書きました。プロセス全体を通して、私は前述したミニショッピングバスケットを挿入しました。
このミニショッピングカートは通常のショッピングカートとは少しだけ異なります。商品を入れた後にショッピングカート内を行ったり来たりする必要はありません。これがこの記事を書く私の本来の意図です。
目標
人々はコントロールすることを好みます。だから、彼らがコントロールできると信じられるように、透明性を与えてはどうでしょうか?このミニ ショッピング バスケットは、
完璧なアプローチを示しています。オンライン ストアの 3 クリックの例に近い、必要な情報を人々に提供し、ワンクリックで節約できます。
したがって、目標は、このミニ バスケットをページの一部として常に表示し、最後に概要を提供して
バスケット内の商品を変更し、最後に注文を送信することです。
要件
セッションとは何かを知っておく必要があります。分からない場合は、ここで簡単に説明します。このトピックについてはすでに多くの記事があり、そこから必要なコード例をすべて見つけることができます
。スタート ページでセッションを開くには、
session_start();
?> を使用します。これにより、セッション名とセッション ID が作成されます。 Cookie
を介してセッションを設定するデフォルトの方法を使用するか、フォームを介してセッション ID を渡すか、変数としてリンクに添付する (get メソッド) ことができるようになりました。最後にセッションを解放する
を忘れないでください。 :)
この例で機能するには、アイテムに名前、価格、一意の識別子が必要ですが、そうでない場合は、少し
変更する必要があるかもしれません。ここでは、ページやその他のものを構築するためにバックエンドとして mysql を使用していますが、これはショッピングが機能するために必要ありません。 :)
配列を理解する必要があります。もし誰かが私のコードを取り上げてクラスを作成する時間があれば、ぜひ感謝したいと思います。
定義
この例を簡素化するために、4 つの個別の配列といくつかの追加の変数を使用しました。コードを最適化できます。これにより、
アイデアを示したり、コードを読んだりすることが簡単になります。クラスを使用するとより適切に実現できますが、オブジェクトをセッションに保存できるかどうかはわかりません。これについてコメントしたい人はいますか?
アイテムカウンターも必要です。もちろん、これは count() コマンドを使用して実行できます。アイテムの数を常に知るには十分だと思います
また、ループ用の優れたカウンターも提供します。
作業中
HTML ページに商品リストがあるとします
ID 名前 価格
1 マウス 25.00 追加
2 キー 100.00 追加
3 車 5000.00 追加
4 ゲーム 25.00 追加
ページへのリンクを追加
上の「追加」フィールドは、ミニ ショッピング バスケットに商品を追加するためのリンクである必要があります。
以来、$PHP_SELF を使用してこのリンクを指すようにしてください。次に、製品情報を追加します。以下は項目 1 の例です。
add
製品名にはスペースを含めることができるため、次のリンクに入力してください。最後。 Get メソッドはこの点に非常にこだわりがあるようです。
ミニバスケットの準備
コードを再利用するために、追加ファイル minibasket.inc を作成しましょう。インクルード ファイルを識別するために .inc 拡張子を使用します。
この外部ファイルを使用する理由は、セッション変数を使用してバスケットに渡すことになりますが、コードが有効である必要があるためです。このファイルは
ミニ ショッピング バスケットを表示するためのコードと、商品を追加するための関数が含まれています。これを実装する最適な場所は、必要な場所に
minibasket.inc のロジック
これについて少し時間を取って考えてください。ミニ ショッピング バスケットはどのようなものであるべきで、どのような機能が必要ですか?ここに表示されるミニ ショッピング バスケットは次のようになります:
# Name Price
1 Mouse 25.00
3 Game 75.00
Total 100.00
この出力は、外部スタイルシートを使用して簡単にフォーマットできます。ただし、大きすぎてもいけません。ミニ ショッピング バスケットは
情報ですが、表示するページの焦点であってはなりません。
このファイルのロジックは非常に単純です。
新しい項目を追加する必要があるかどうかを確認してください。
true の場合、項目を追加します
結合中に、重複レコードがないかチェックし、数量と価格を更新することで既存のレコードを更新します。
クリップ1。追加される新しい項目を確認します
これは、$basket 変数の値を確認するために使用される通常の IF ステートメントです。
if ($basket!=""){
//商品をバスケットに追加します
}
?>
スニペット 2.ブラウザにバスケットを表示
if ($ses_basket_items>0){
// バスケットに商品がある場合
for ($basket_counter=0;$basket_counter<$ses_basket_items;$basket_counter++){
//バスケットを移動して各行を印刷します
// もちろん、グリッドを使用して表示をフォーマットすることもできます
// 価格ポイントを表示するにはフォーマットする必要があります。書式設定がない場合、.00 は表示されません
$price=sprintf("%01.2f",$ses_basket_price[$basket_counter]);
$amount=$ses_basket_amount[$basket_counter];
$name=$ ses_basket_name[ $basket_counter];
echo "$amount $name $price";
echo "
n" }
} else {
// バスケットに商品がありません
// アイテム数を 0 に設定します, そしてすべての変数をクリアします
// これはクリアのプロセスです。これにより、古い配列
$ses_basket_items=0;
unset($ses_basket_amount);
}
?> ;
このコードは結果を生成しません。まだ商品が入っておらず、カゴは常に空なのでカゴは表示されません。それでは、このバスケットにいくつかのアイテムを
追加してみましょう。