2017-04-18 11 views
1

私は、データベースから製品を取り出して一覧表示し、カートに追加できる電子商取引Webサイトを作成することになっています。 1つの量のアイテムだけが必要ですが、それは他の機能も持っていなければなりません。セッションでPHPでシンプルなショッピングカートを作成しようとしています

私が今作業しようとしているのは、データベースから取り出されたアイテムごとに作成した「今すぐ購入」ボタンをユーザーがクリックすると実際にカートにアイテムを追加することですが、 。ブラウザの終了時にすべてが消去されるように、カート用のセッションを使用しようとしています。

ここで私が使用可能なアイテムを表示するページのために持っているものです:

<?php 
    $id = $_GET['id']; 
    $sql = "SELECT * FROM products WHERE id=$id"; 
    $result = mysqli_query($connection, $sql); 

    echo '<div id="description">'; 
    if(mysqli_num_rows($result)>0){ 
     while($row = mysqli_fetch_array($result)){ 
      echo '<h2>'.$row['Name'].'</h2>'; 
      echo '<p>'.$row['Description'].'</p>'; 
      echo '<a href="cart.php" id="'.$row['id'].'" class="buyNow">Buy Now - $'.$row['Price'].'.00</a>'; 
     } 
    }else{ 
     echo "There is something wrong."; 
    } 
    echo '</div>'; 
?> 

そして、ここでは、私は、カートのために持っているものです:

<?php 

require('connection.php'); 
session_start(); 

$cart_content = array(); 

?> 

私は過去もらっていませんカートアイテムとなる配列のボーンを作成します。私はオフ・ラインの朝か何かを持っているかどうかは分かりませんが、私が作成したボタンを使ってアイテムを追加する方法はわかりません。私がそれをやっていると思うと、それは簡単にできるはずですが、私が見ているチュートリアルに関係なく、それを理解することはできません。今のところ、これは私が助けを必要とする唯一のものです。なぜなら私は自分自身で残りを把握できると確信しているからです。まず

+0

また、whileループで製品のIDを解析します。カートに追加ボタンがクリックされたら、準備されたステートメントを使用してデータベースを検索し、その製品をセッション変数に追加します。次に、チェックアウト時に、そのセッション変数をループして、価格で項目を表示します。 PayPalゲートウェイまたは別の支払いゲートウェイで構築することができます – Akintunde007

答えて

0

あなたはあなたはそれが$_GET['id']に存在するはずカートの処理スクリプトに$_GET['id']を探したときに今、クエリ文字列

<?php 
    session_start(); 
    // show all products in this script 
    $sql = "SELECT * FROM products"; 
    $result = mysqli_query($connection, $sql); 

    echo '<div id="description">'; 
    if(mysqli_num_rows($result)>0){ 
     while($row = mysqli_fetch_array($result)){ 
      // stop it showing a product if it has already been selected by user 
      if (! in_array($row['id'], $_SESSION['cart']) { 
       echo '<h2>'.$row['Name'].'</h2>'; 
       echo '<p>'.$row['Description'].'</p>'; 
       echo '<a href="cart.php?id=' . $row['id'] . '" class="buyNow">Buy Now - $'.$row['Price'].'.00</a>'; 
      } 
     } 
    }else{ 
     echo "There is something wrong."; 
    } 
    echo '</div>'; 
?> 

idを追加する必要がありCART処理を起動するためのアンカータグを使用しているよう。後で見ることができる$_SESSION配列の何かに追加するだけです。その配列を$ _SESSIONに賢明な名前を付けることは大切です。

<?php 
session_start(); 
require('connection.php'); 

// add this id to the cart array in the session 
$_SESSION['cart'][] = $_GET['id']; 
// re-run the first script 
header('Location: xxxx.php'); // sorry dont know what the fist script is called 

?> 
+0

_SESSION変数の上に追加したコメントは本当に理解できません。元の$ cart_content = array();を保持する必要があります。 $ _SESSION ['cart'] [] = $ _GET ['id'] ;?を追加するだけでなく、 –

+0

これは必要ありません – RiggsFolly

+0

私のIDはcart.phpページに持ち越されています。少し余分な作業をすれば関連データも表示されるはずですが、私はまだですユーザーに複数のアイテムの「今すぐ購入」ボタンをクリックさせて、各アイテムをカートに追加させる方法がわからない。 –

関連する問題