Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

корзина на php

Обсуждение темы корзина на php в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Появилась такая проблема: при нажатии на добавление или на уменьшение кол-ва товара в корзине все вроде работает, но только пока товар в корзине ...


Закрытая тема
 
Опции темы
Старый 22.12.2013, 22:43   #1
Появилась такая проблема: при нажатии на добавление или на уменьшение кол-ва товара в корзине все вроде работает, но только пока товар в корзине 1, если же товаров несколько то действие всеравно применятся к первому товару. До этого было устроено немного по другому и все работало. Было поле куда нужно ввести цифру и нажать кнопку обновить, но мне кажетс это не очень удобно и я добавил кнопочки "+" и "-" вот только не совсем работает. Помогите пожалуйста, что я упустил?

Вот код функций корзины:
Код:
<?

    function add_to_cart($id)
    {
        if(isset($_SESSION['cart'][$id]))
        {
            $_SESSION['cart'][$id]++;
            return true;
        }
        else
        {
            $_SESSION['cart'][$id] = 1;
            return true;
        }
        return false;
    }
	
	function update_cart()
    {
        foreach($_SESSION['cart'] as $id => $qty)
        {
            if($_POST[$id] == '0')
            {
                unset($_SESSION['cart'][$id]);
            }
            else
            {
                $_SESSION['cart'][$id] = $_POST[$id];
            }
        }
    }
	
	function more()
    {
        foreach($_SESSION['cart'] as $id => $qty)
        {
            
                $_SESSION['cart'][$id]++;
            return true;

        }
    }
	
		function less()
    {
        foreach($_SESSION['cart'] as $id => $qty)
        {
            
                $_SESSION['cart'][$id]--;
            return false;

        }
    }
	
	function unset_cart()
    {
        foreach($_SESSION['cart'] as $id => $qty)
        {
                unset($_SESSION['cart'][$id]);
            
        }
    }
	
	function total_items($cart)
    {
        $num_items = 0;
        
        if(is_array($cart))
        {
            foreach($cart as $id => $qty)
            {
                $num_items = $num_items + $qty;
            }
        }
        
        return $num_items;           
    }
	
	function total_price($cart)
    {
        $total_price = 0;
		$sales = 1;
        
        db_connect();
        
        if(is_array($cart))
        {
            foreach($cart as $id => $qty)
            {
                $query = "SELECT price FROM products WHERE id='$id'";
                $result = mysql_query($query);
                if($result)
                {
                    $item_price = mysql_result($result,0,'price');
                    $total_price = ($total_price + $item_price * $qty) * $sales;
                }
            }
        } 
        return $total_price;           
    }
 
    

?>
Код индекса:
Код:
<?

include('db_fns.php');

include('cart_fns.php');

session_start();

if(!isset($_SESSION['cart']))
{
    $_SESSION['cart'] = array();
    $_SESSION['total_items'] = 0;
    $_SESSION['total_price'] = 0;
}

$view = empty($_GET['view']) ? 'main' : $_GET['view'];

switch($view)
{
    case('main'):
        $cat_leather = get_cat_leather();
		$cat_jewellery = get_cat_jewellery();
    break;
    
    case('sub'):
        $cat = $_GET['id'];
        $products = get_cat_products($cat);
    break;
    
    case('product'):
        $id = $_GET['id'];
        $product = get_product($id);
    break;
    
	case('catalog'):
        $cat_leather = get_cat_leather();
		$cat_jewellery = get_cat_jewellery();
    break;
		
    case('add_to_cart'):
        $id = $_GET['id'];
        $add_item = add_to_cart($id);
		$_SESSION['total_items'] = total_items($_SESSION['cart']);
		$_SESSION['total_price'] = total_price($_SESSION['cart']);
        header('Location: index.php?view=product&id='.$id);
    break;
	
	case('update_cart'):
        update_cart();
		$_SESSION['total_items'] = total_items($_SESSION['cart']);
		$_SESSION['total_price'] = total_price($_SESSION['cart']);
        header('Location: index.php?view=cart');
    break;
	
	case('more'):
        more();
		$_SESSION['total_items'] = total_items($_SESSION['cart']);
		$_SESSION['total_price'] = total_price($_SESSION['cart']);
        header('Location: index.php?view=cart');
    break;
	
	case('less'):
        less();
		$_SESSION['total_items'] = total_items($_SESSION['cart']);
		$_SESSION['total_price'] = total_price($_SESSION['cart']);
        header('Location: index.php?view=cart');
    break;
	
	case('unset_cart'):
        unset_cart();
		$_SESSION['total_items'] = total_items($_SESSION['cart']);
		$_SESSION['total_price'] = total_price($_SESSION['cart']);
        header('Location: index.php?view=cart');
    break;
    	
    case('cart'):
    
    break;
    
}
include($_SERVER['DOCUMENT_ROOT'].'/vatago/vatago/vatago.php');
?>
Код корзины:
Код:
<?
if($_SESSION['cart'] != '0')
{
?>
<form action="" method="post" id="cart-form">
    <table cellpadding="5" cellspacing="2" id="cartd">
  <tr id="cartr">
    <td width="300">Название:</td>
    <td width="70">Код:</td>
    <td width="130">Цена:</td>
    <td width="70">Кол-во:</td>
    <td width="130">Всего:</td>
  </tr>
   <? foreach($_SESSION['cart'] as $id => $quantity):
         $product = get_product($id);
      ?>
  <tr id="cartr2">
    <td width="300"><?=$product['title'];?></td>
    <td width="70"><?=$product['code'];?></td>
    <td width="130"><?=number_format($product['price']);?> грн.</td>
    <td width="70"><b><a href="index.php?view=more">+</a></b> <input type="text" size="1" name="<?=$id;?>" maxlength="3" value="<?=$quantity;?>" /> <b><a href="index.php?view=less">-</a></b></td>
    <td width="130"><?=number_format($product['price'] * $quantity);?> грн.</td>
  </tr>
  <?endforeach;?>
 
</table>
<table cellpadding="5" cellspacing="2" id="cartd2">
  <tr id="cartr2">
  <th width="70"><?=$_SESSION['total_items'];?></td>
      <th width="130"><?=number_format($_SESSION['total_price']);?> грн.</td>
  </tr>
  </table>
<div align="center"><input formaction="index.php?view=update_cart" type="submit" name="update" value="Обновить" /><input formaction="index.php?view=unset_cart" type="submit" name="reset" type="button" value="Сброс"></div>
</form>
<?
}
else
{
    echo "Ваша корзина пуста!";
}
?>
 
Старый 22.12.2013, 22:43
Ссылки
Старый 22.12.2013, 22:43
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Корзина на Php Dajna ASP, Perl, PHP и MySQL 5 23.11.2006 12:15


Текущее время: 11:37. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум