Devona
Новичок
корзина на PHP & MySql
на сайте реализована корзина на пхп+мускл
работа проходит на локальной машине с использованием Денвера с дальнейшей заливкой на хостинг
корзина выглядит примерно так.
при заходже на сайт пользователю присваивается session_id
когда он нажимает на товаре "добавить" - проходит проверка. если такой айди товара с таким айди сессии уже есть в таблице - его количество увеличивается на 1. если нет - в базу пишется айди товара, айди сесии, количество=1. после окончания формировки заказа - из таблицы труться записи с айди сессии юзера.
проблема следующая.
на локалке на денвере корзина работает безукоризненно.
на хостинге выглядит так: имеем пустую таблицу текущих заказов. зашёл юзер, добавил. записали его заказ в таблицу. если он добавляет ещё один товар(другой уже) он не пишется в таблицу. наличие записи проверяется по айди товара+айди сессии. непонятна логика ошибки проверки. скрипт не находит запись с добавленным айди товара. то есть возвращает mysql_num_rows=0 но запись не происходит. так же происходит и с другими пользователями. если в этой таблице уже есть хоть одна запись - ничего больше туда не пишется.
вот сам текст функции
на сайте реализована корзина на пхп+мускл
работа проходит на локальной машине с использованием Денвера с дальнейшей заливкой на хостинг
корзина выглядит примерно так.
при заходже на сайт пользователю присваивается session_id
когда он нажимает на товаре "добавить" - проходит проверка. если такой айди товара с таким айди сессии уже есть в таблице - его количество увеличивается на 1. если нет - в базу пишется айди товара, айди сесии, количество=1. после окончания формировки заказа - из таблицы труться записи с айди сессии юзера.
проблема следующая.
на локалке на денвере корзина работает безукоризненно.
на хостинге выглядит так: имеем пустую таблицу текущих заказов. зашёл юзер, добавил. записали его заказ в таблицу. если он добавляет ещё один товар(другой уже) он не пишется в таблицу. наличие записи проверяется по айди товара+айди сессии. непонятна логика ошибки проверки. скрипт не находит запись с добавленным айди товара. то есть возвращает mysql_num_rows=0 но запись не происходит. так же происходит и с другими пользователями. если в этой таблице уже есть хоть одна запись - ничего больше туда не пишется.
вот сам текст функции
PHP:
function add_item($session, $id, $quantity)
{
global $database;
global $id;
global $session;
$query = "SELECT id FROM shopping WHERE session='$session' AND product='$id'";
$database->setQuery($query);
$database->query();
$num_rows = $database->getNumRows();
$this->incart = $database->loadResult();
$query = "SELECT quantity FROM shopping WHERE session='$session' AND product='$id'";
$database->setQuery($query);
$database->query();
$this->incquan = $database->loadResult();
// если нет товара в корзине - добавить
if($num_rows == 0)
{
$query = "INSERT INTO shopping (session, product, quantity) VALUES ('$session','$id','$quantity')";
$database->setQuery($query);
$database->query();
}
// товар есть - увеличить количество.
else
{
$quantity = $quantity + $this->incquan;
$query = "UPDATE shopping SET quantity='$quantity' WHERE session='$session' AND product='$id'";
$database->setQuery($query);
$database->query();
}
}