php cart项目有多个选项

时间:2012-03-02 19:40:32

标签: php

首先,我是PHP的OOP新手,也是PHP的初学者。

我正在为朋友的网站购买购物车。我找到了一些基本购物车的代码,并试图修改它以符合我的目的。

代码使用与数据库中的prod匹配的ID,并且即可。当我尝试向产品添加修饰符时问题就开始了。 ex prod 1d和一种颜色。这是以get和这种格式发送到购物车的。 ?cart.php行动=添加和ID = 1&安培;颜色= C1

然后购物车查询数据库并提取产品名称,它还检查重复ID。这是我迷路的地方。

这是购物车代码。

function writeShoppingCart() {
$cart = $_SESSION['cart'];
if (!$cart) {
    return '<p>You have no items in your shopping cart</p>';
} else {
    // Parse the cart session variable
    $items = explode(',',$cart);
    $s = (count($items) > 1) ? 's':'';
    return '<img src="images\cart.jpg" alt="cart" />You have <a href="/cart/cart.php">'.count($items).' item'.$s.' in your cart</a>';
}
}

function showCart() {
global $db;
$cart = $_SESSION['cart'];
if ($cart) {
    $items = explode(',',$cart);
    $contents = array();
    foreach ($items as $item) {
        $contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1     : 1;
    }
    /*$colors = explode('c',$item);
    foreach ($item as $cid) {

        }*/
    $output[] = '<form action="cart.php?action=update" method="post" id="cart">';
    $output[] = '<table>';
    foreach ($contents as $id=>$qty) {
        $sql = 'SELECT * FROM products WHERE id = '.$id;
        //$sql2 = 'SELECT * FROM colors WHERE id = '.$cid;
        $result = $db->query($sql);
        //$result2 = $db->query($sql2);
        $row = $result->fetch();
        //$row2 = $result2->fetch();
        extract($row);
        //extract($row2);
        $output[] = '<tr>';
        $output[] = '<td><a href="cart.php?action=delete&id='.$id.'" class="r">Remove</a></td>';
        $output[] = '<td>'.$type.'</td>';
        //$output[] = '<td>'.$color.'</td>';
        $output[] = '<td>$'.$price.'</td>';
        $output[] = '<td><input type="text" name="qty'.$id.'" value="'.$qty.'" size="3" maxlength="3" /></td>';
        $output[] = '<td>$'.($price * $qty).'</td>';
        $total += $price * $qty;
        $output[] = '</tr>';
    }
    $output[] = '</table>';
    $output[] = '<p>Grand total: <strong>$'.$total.'</strong></p>';
    $output[] = '<div><button type="submit">Update cart</button></div>';
    $output[] = '</form>';

} else {
    $output[] = '<p>Your cart is empty.</p>';
}
return join('',$output);
}

我已经注释掉了我为了解决这个问题而修改的行。我想如果我爆炸并打破'c',颜色标识符,然后再用foreach循环然后我可以为每个c创建一个var。然后我需要更改我的数据库中的id以显示c#或解析c然后基于此查询。我在编写代码时遇到了麻烦。

另外,如果你不介意,有人可以解释=&gt;以及如何在PHP中使用它。我已经完成了搜索,但他们并没有真正解释清楚。也不是php.net网站。

感谢。

0 个答案:

没有答案