オンライン ショッピングは今や流行しています。顧客は商品を選択し、ショッピング カートに入れ、戻って買い物を続けるか、チェックアウトに進みます。この機能を実装するにはどうすればよいですか?現在、capucivar は PHP を使用してこのショッピング カート機能を実装します。
まず、簡単なホームページを作成し、データベースからいくつかの商品をクエリしてホームページに表示し、購入ボタンを追加します。具体的なコードは次のとおりです:
include ("conn.php");
$sql="select * fromProduce";//すべての製品をクエリします
$rs=mysql_query($sql ,$conn );// SQL ステートメントを実行して結果セットを取得します
while($row=mysql_fetch_array($rs))// 結果セットを走査します
{
?>
src="images/ width="123" height="121" border="0"/> | 商品名: |
echo $row[" pname"]?> ;">購入 |
}
?>
ちなみに、 conn.php が忘れられていました。これはデータベースに接続するために使用されます:
$conn=mysql_connect("localhost","root","");
mysql_select_db("shop", $conn);
mysql_query("set names gb2312");
?>
このようにして、インターフェイスは次のように表示されます:
購入ハイパーリンクをクリックした後、buy.php に移動します。このページでは、購入したアイテムを転送する必要があります。それを保存するには、購入したアイテムを 1 次元配列に入れ、次に 1 次元配列を 2 次元配列に入れ、最後に 2 次元配列を入れます。配列をセッションに追加します。購入したアイテムを将来どのように変更しても、セッションから取り出して変更することができます。これにより管理が非常に便利になります。具体的なコードは次のとおりです:
session_start();//使用する前に必ずセッションを開いてください
ob_start();//キャッシュをクリアするには、ob_start() を実行する必要があります
$pid=$_GET[ "id"];//購入したアイテムのIDを取得します
$name=$_GET["pname"];//購入したアイテムの名前を取得します
$arr=$_SESSION[ "mycar"];// セッションに入ります 変数を取り出します
// まずこの変数が配列であるかどうかを判断しましょう、以前に何かを購入したかどうかを取得できます
if(is_array($arr))
{
//配列の場合は、以前に何かを購入したことがあるという意味です
//何かを購入した場合、次の 2 つの状況があります:
if(array_key_exists($pid,$arr))
{
//1. array_key_exists($pid,$arr) は、$pid というキー値を持つ 1 次元配列を決定します。これは、この製品が以前に購入されたことを意味します。 $uu=$arr[$pid]; // 二次元配列から取り出します 対応する一次元配列には ID 名 num の 3 つの値が含まれます
$uu[" num"]=$uu["num"]+1; [$pid]=$uu; //変更後、この 1 次元配列を 2 次元配列に戻しますおよび名前の値一つを形成する-次元配列
}
else
{
$arr[$pid]=array("pid"=>$pid,"name"=>$name,"num"=> 1);
}
$_SESSION["mycar"]=$arr;//購入後、この配列をセッションに戻すと、各ページでこのセッションが表示されます
ob_clean();// キャッシュをクリアします
header( " location:car.php");//ショッピング カート インターフェイス (car.php) にジャンプします
?>
以下はショッピング カート コードです:
session_start();/ / Enable session
$arr=$_SESSION["mycar"];//セッションから二次元配列を取り出します
?>
//配列内のデータは下に表示されますが、これは購入したアイテムですお客様による
< ;?phpecho $a["num"]?> | //項目数
< /form>
capucivar がいくつかのアイテムを購入した後、インターフェイスに次の効果が表示されました:
製品を削除するときは、まず削除したい製品の ID を取得します。ID を取得した後、その製品を取り出します。 - 取得した ID に対応する 2 次元配列を取得し、1 次元配列をクリアし (unset())、2 次元配列を設定解除してから session() に戻します。以下の削除コードを記述します:
session_start();//セッションを開始します
ob_start();//キャッシュをクリアするために開始する必要がある項目をクリアします
$pid=$_GET["id "];/ /getメソッドで渡されたidを取得
$arr=$_SESSION["mycar"];//セッション内の2次元配列を取り出す
foreach($arr as$key=> $proId)//Traverse 二次元配列のキー値、ここに商品のIDが入ります {
IF ($ key == $ pid) // 判定キーの値は渡した商品IDと等しい
{
unset ($ arr [$ arr [ $key]);// 1 次元配列をクリアします
}
}
$_SESSION["mycar"]=$arr;// クリアした 2 次元配列を配置します配列をセッションに戻します
ob_clean() ;//キャッシュをクリアします
header("location:car.php");//ショッピングカートにジャンプします
?>
コードを書いた後、購入したcapucivar 上の製品 ID 2 の製品が削除されます。結果は次のとおりです。
ショッピング カートの機能は比較的単純で、購入と削除のみを実現します。実際、ショッピング カートは、考え方が明確であれば、1+1 を計算するのと同じくらい単純です。
ショッピングカートの機能は次のように実装されます: 製品を購入した後、製品の ID と名前を取得し、これら 2 つの値と数量 (1) を追加して 1 次元配列に入れます。製品は 1 次元配列であるため、多くの項目では当然 2 次元配列の使用が必要になります。その前に、まず商品が以前に購入されたかどうかを確認し、購入されている場合は、1 次元配列を再作成し、最後に 1 次元配列を 2 次元配列に入れます。セッションに入る。削除する場合は、削除するプロダクトのIDを取得し、2次元配列からそのプロダクトが格納されている1次元配列を見つけ、1次元配列をクリアしてから、2次元配列をセッションに投入します。このようにして、上記と同様の単純なショッピング カート機能が実装されます。