-2

私はPHPで練習していて、その結果、ダミーのオンラインストアを作成することになりました。ほとんどのオンライン機能を実装できましたが、ショッピング カートに苦労しています。

ユーザーがログインしてサイトの商品エリアに入ると、ユーザーが商品をカートに追加できるようにしたいと考えています。私はphpAcademy YouTube チュートリアルに従っています。各製品をcart.phpという処理ページにリンクする追加ボタン/ハイパーリンクを使用して、すべての製品を表示することができました。各ボタンのリンクは、関連付けられた製品 ID と一致します。

これをテストして「追加」をクリックすると、cart.php ページに商品の ID が表示されません。

user_man_boxing_gloves.php:

<?php
session_start();

include('connect_mysql.php');

$product_name = 'product_name';
$product_qua = 'product_qua';
$product_price = 'product_price';
$product_image = 'product_image';
$product_des = 'product_des';

$get = mysql_query("SELECT product_id, product_image, product_name, product_des, product_price, product_type FROM products WHERE product_type='ManGloves' AND product_qua > 0 ORDER BY product_id DESC");
if(mysql_num_rows($get) == 0)
{
    echo "There are no Products to display";
}
else
{
    ?>
    <?php
    while($get_row = mysql_fetch_assoc($get))
    {
        ?>
        <table id='display'>
            <tr><td><?php echo "<img src=$get_row[$product_image] class='grow'>" ?></td></tr>

            <tr>
                <th></th>
                <th><strong>Avalible</strong></th>
                <th><strong>Price</strong></th>
                <th><strong>Description</strong></th>
            </tr>

            <tr>
                <td width='290px'><?php echo "$get_row[$product_name]" ?></td>
                <td width='290px'><?php echo "$get_row[$product_qua]" ?></td>
                <td width='290px'><?php echo "$get_row[$product_price]" ?></td>
                <td width='290px'><?php echo "$get_row[$product_des]" ?></td>
            </tr>
            <tr>
                <td><?php echo '<a href="cart.php?add=' . $get_row['product_id'] . '">Add</a>'; ?></td>
            </tr>
        </table>

        <?php
    }
}
?>

カート.php:

<?php

if(isset($_GET['add'])){
    $_SESSION['cart_'.$_GET['add']]+='1';

}

echo $_SESSION['cart_'];

?>

プロダクト ID を表示してコードが機能するかどうかを確認したいのですが、コードが機能することを確認してからさらに処理を実行したいと考えています。

ここに画像の説明を入力

スクリーンショットを見ると、追加ボタンに製品 ID が正しく表示されているように見えます。

4

1 に答える 1

0

cart.phpの問題は次のスニペットを扱っているようです。

if(isset($_GET['add'])){
        $_SESSION['cart_'.$_GET['add']]+='1';
}

これを実行すると、IDが1の場合、セッション配列に次のように表示される可能性があります。

$ _SESSION ['cart_1'] = 1;
$ _SESSION ['cart_2'] = 4;

ディスプレイにおそらく必要なのは、配列をカートに格納することです。あれは、

if(isset($_SESSION['cart']))
{
    $arr = unserialize($_SESSION['cart']);
}
else
{
    $arr = array();
}

if(isset($_GET['add'])){
        $arr[$_GET['add']] += 1;
}
$_SESSION['cart'] = serialize($arr);

var_dump(unserialize($_SESSION['cart']));
于 2013-03-14T00:45:06.087 に答える