首先,我是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网站。
感谢。