Корзина для магазина и PHP

233
01 июля 2018, 16:50

Работаю с корзиной для веб-магазина (Session), делаю на php.

Проблема состоит в том, что я не могу вывести все нужные элементы в одну строчку. Когда я пытаюсь выводить элемент который брался из бд, он выводит последний элемент из списка.

Та самая переменная которая выводит последнее значение -'echo $values["item_name"];'

Начало сессии:

<?php 
session_start();
$connect = mysqli_connect("localhost", "root", "", "csrizzle_GameStorm");
if(isset($_POST["add_to_cart"]))
{
    if(isset($_SESSION["shopping_cart"]))
    {
    $item_array_id = array_column($_SESSION["shopping_cart"], "item_id");
    if(!in_array($_GET["product_id"], $item_array_id))
    {
        $count = count($_SESSION["shopping_cart"]);
        $item_array = array(
            'item_id'           =>  $_GET["product_id"],
            'item_name'         =>  $_POST["hidden_name"],
            'item_price'        =>  $_POST["hidden_price"],
            'item_quantity'     =>  $_POST["quantity"]
        );
        $_SESSION["shopping_cart"][$count] = $item_array;
    }
    else
    {
        echo '<script>alert("Item Already Added")</script>';
    }
}
else
{
    $item_array = array(
        'item_id'           =>  $_GET["product_id"],
        'item_name'         =>  $_POST["hidden_name"],
        'item_price'        =>  $_POST["hidden_price"],
        'item_quantity'     =>  $_POST["quantity"]
    );
    $_SESSION["shopping_cart"][0] = $item_array;
}
}
if(isset($_GET["action"]))
{
if($_GET["action"] == "delete")
{
    foreach($_SESSION["shopping_cart"] as $keys => $values)
    {
        if($values["item_id"] == $_GET["product_id"])
        {
            unset($_SESSION["shopping_cart"][$keys]);
            echo '<script>alert("Item Removed")</script>';
            echo '<script>window.location="cart.php"</script>';
        }
    }
}
}

?>

Вывод значений с бд:

<?php
                    if(!empty($_SESSION["shopping_cart"]))
                    {

                        $total = 0;
                        foreach($_SESSION["shopping_cart"] as $keys => $values)
                        {

                    ?>

                    <tr>
                        <td><?php echo $values["item_name"]; ?></td>
                        <td><?php echo $values["item_quantity"]; ?></td>
                        <td>$ <?php echo $values["item_price"]; ?></td>
                        <td>$ <?php echo number_format($values["item_quantity"] * $values["item_price"], 2);?></td>
                        <td><a href="cart.php?action=delete&product_id=<?php echo $values["item_id"]; ?>"><span class="text-danger">Remove</span></a></td>
                    </tr>
                    <?php
                            $total = $total + ($values["item_quantity"] * $values["item_price"]);
                        }
                    ?>
                    <tr>
                        <td colspan="3" align="right">Total</td>
                        <td align="right">$ <?php echo number_format($total, 2); ?></td>
                        <td></td>
                    </tr>
                    <?php
                    }
                    ?>

Цель заключаеться в том, чтобы я мог вносить все данные из списка в бд указав переменную, где хранятся названия игр.

Спасибо за помощь!

READ ALSO
Проверка на наличие товара

Проверка на наличие товара

Такая ситуация, есть на сайте несколько разных товаров, например, яблоки, груши и мандариныКак мне при помощи php и mysqli узнать, куплены ли они?...

202
Не работает таймер PHP + MySql

Не работает таймер PHP + MySql

Возвращает "время вышло", значит r < 0, но в БД значение у "pohod" больше 0, не как не могу понять в чем дело, исправьте пожалуйста ошибки

215
UrlRule. __construct и init() не вызываются

UrlRule. __construct и init() не вызываются

Написал свое правило для urlManager'а

216