2013-05-04 59 views
-5

我正在用我的第一個購物車在php中掙扎。我有一個PHP文件添加項目購物車會話。 addcart.php需要幫助!將其他商品添加到購物車時出錯

<?php 
include 'dbconnect.php'; 
session_start(); 
$id= $_GET['id']; 

if(!is_null($id)){ 
if(isset($_SESSION['cart']) && count($_SESSION['cart']) > 0){ 

    // increment product quantity if already exists 
    // or create a new one 
    add_or_increment_product_to_cart($id, $_SESSION['cart']); 

} else { 
    // initialize cart 
    // add the first product 
    $_SESSION['cart'] = array(); 
    array_push($_SESSION['cart'], (object) array('id' => $id, 'quantity' => 1)); 
} 
} 

function add_or_increment_product_to_cart($id, $cart){ 

foreach ($cart as $key => $product) { 
    if($id == $product->id){ 
     $product->quantity++; 
     return; 
    } 
} 

array_push($_SESSION['cart'], (object) array('id' => $id, 'quantity' => $product)); 
} 

header('location:cart.php'); 
?> 

而且我有一個PHP頁面在車會話以顯示所有項目。如果我只是添加一個項目到購物車,它工作正常。

cart.php

<?php 

$page_title = "Cart"; 
include_once ('header.html'); //include session_start() and others things 
include ('dbconnect.php'); 
if($_SESSION['login']==null) 
{ 
header ("location:login.php"); 
} 
?> 

<div id="content"> 
<table border="1"> 
<form action="update_cart.php" method="post"> 
<?php 
$total_price=0; 
if(isset($_SESSION['cart']) ? $_SESSION['cart'] : null) 
{ 
echo "<tr> 
    <th></th> 
    <th>Product</th> 
    <th>Price</th> 
    <th>Quantity</th> 
    </tr>"; 
foreach ($_SESSION['cart'] as $key => $product) { 
    $the_query = "SELECT * FROM products WHERE id=" . $product->id." LIMIT 1"; 
    $the_product = $db->query($the_query) or die('Query failed: ' . mysql_error()); 
     $the_product->execute(); 
     $the_product->setFetchMode(PDO::FETCH_OBJ); 

     while ($row = $the_product->fetch()){ 

     echo "<tr><td>"; 
     echo "<img src='".$row->image_url_small."' /></a></td>"; 
     echo "<td><strong>".$row->name."</strong></td><td><em>$".$row->price."</em>"; 
     echo '</td>'; 
     echo '<td><input type="text" name="'.$row->id.'" class="override" value="'.$product->quantity.'"/></td>'; 
     //echo '<td><a href="update_cart.php?id='.$row->id.'&quantity='.$product->quantity.'">Update</a></td>'; 
     echo '<td><a href="do_deletecart.php?id='.$row->id.'">Delete item </a></td></tr>'; 
     $total_price = $total_price + $row->price*$product->quantity; 
    }} 

    echo "<tr><td colspan='2'></td></tr>"; 
    echo "<tr><td style='text-align:center;font-size:40px;'>$</td><td><strong>Total</strong><br /><em>$".$total_price."</em></td></tr>"; 
    $_SESSION['total']=$total_price; 

} 
else { 
echo "Your cart is empty."; 
} 
?> 
<tr><td> 
<!----<input type = "submit" value="Checkout"/></td>-----> 
<td><input type = "submit" value="Update"/></td></tr> 

</form> 
</table> 
<br /><a href="empty_cart.php">Empty Cart</a> <a href="products.php">Show products</a><br /><br /> 
</div> 
<?php 
include_once ('footer.html'); 
?> 

任何意見,以解決這個錯誤,「開捕致命錯誤:類stdClass的客體不能轉換爲字符串/home/s3393354/public_html/Assignment2/cart.php上線37「。

echo '<td><input type="text" name="'.$row->id.'" class="override" value="'.$product->quantity.'"/></td>'; 

在此先感謝。

+1

雅所以有什麼錯誤? – 2013-05-04 04:31:45

+0

我得到可捕捉的致命錯誤:class stdClass的對象無法轉換爲/ home/s3393354/public_html/Assignment2/cart.php上的字符串,在行37 – user2210209 2013-05-04 05:09:50

+0

@ user2210209顯示哪一行是行號。 37你在哪裏得到錯誤。 – 2013-05-04 05:14:11

回答

0

cart.php頂部沒有session_start();。把它放在頂部

<?php 
session_start(); 
+0

因爲'session_start()'是php函數,所以我已經把header.html中的session_start()函數 – user2210209 2013-05-04 05:07:17

+0

@ user2210209重命名爲'header.html'到'header.php'。 – 2013-05-04 05:13:32

相關問題