Как я могу использовать базу данных и сеансы PHP для хранения корзины покупок пользователя? - PullRequest
4 голосов
/ 25 ноября 2008

Как я могу использовать базу данных и сеансы PHP для хранения корзины пользователя? Я использую CodeIgniter, если это поможет.

Пример кода тоже подойдет.

Ответы [ 3 ]

3 голосов
/ 25 ноября 2008

Я бы рекомендовал вам взглянуть на Класс сеанса CodeIgnitor .

Кроме того, вы можете посмотреть обсуждение Криса Шифлетта на эту тему.

1 голос
/ 22 декабря 2008

как насчет этого; - когда гость добавляет один товар в корзину

  function addCartItem($item_id, $qty)
  {
    $basket = $this->session->userdata('basket');
    if(!$basket)
    {
       $this->session->set_userdata('basket', array($item_id => $qty));
    }
    else
    {
       ## get array from $basket and *merge some new value from input
    }
  }
1 голос
/ 25 ноября 2008

Я бы написал функцию добавления в корзину следующим образом:

function AddToBasket(){
    if(is_numeric($_GET["ID"])){
        $ProductID=(int)$_GET["ID"];
        $_SESSION["Basket"][]=$ProductID;
        $sOut.=ShowBasketDetail();
        return $sOut; 
    }
}

В этой функции корзины покупок мы сохраняем идентификаторы товаров в массиве сеансов.

Вот что я хотел бы иметь в функции показа корзины:

function ShowBasket(){
    foreach($_SESSION[Basket] as $ProductID){
        $sql="select * from products where ProductID=$ProductID";
        $result=mysql_query($sql);
        $row=mysql_fetch_row($result);
        echo "Product: ".$row[0];
        }
}

Для каждого ProudctID в нашей корзине сеансов мы делаем запрос SQL для вывода информации о продукте.

Теперь последняя, ​​но не менее важная функция очистки корзины:

function ClearBasket(){
    unset($_SESSION[Basket]);
}

Не забудьте session_start();, прежде чем добавлять какие-либо идентификаторы продуктов в свою корзину сеансов. Также не забывайте функцию mysql_connect();, она нужна вам перед тем, как делать какие-либо запросы к базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...