2013-02-15 88 views
0

我正在製作一個網站上有產品。我遇到了意外的文件結束錯誤。這是整個代碼。我也有一個頁面運行這兩個功能,同時要求我稱之爲'購物車'的這個頁面。我在PHP代碼中有意外的文件結束?

<?php 
include('inc/connect.php'); 
session_start(); 
?> 
<html> 
    <head> 
     <title>Cart</title> 
    <link rel='stylesheet' href='css/main.css' /> 
</head> 
<body> 
    <?php 
    $page = 'index.php'; 

    if(isset($_GET['add'])){ 
     $add_id = (int)$_GET['add']; 
     $quantity = mysql_query("SELECT id, quantity FROM products WHERE id='$add_id'"); 
     while($quantity_row = mysql_fetch_assoc($quantity)){ 
      if($quantity_row['quantity'] [email protected]$_SESSION['cart_'.(int)$add_id]){ 
       @$_SESSION['cart_'.(int)$_GET['add']]+='1'; 
      } 
     } 

    } 

    function products(){ 
     $get = mysql_query("SELECT id, name, description, price FROM products WHERE quantity > 0 ORDER BY id DESC"); 
     if(mysql_num_rows($get) == 0){ 
      echo "There are no products to display."; 
     } 
     else{ 
      while($get_row = mysql_fetch_assoc($get)){ 
       echo '<p>'.$get_row['name'].'<br />'.$get_row['description'].'<br />'.$get_row['price'].' <a href="cart.php?add='.$get_row['id'].'">Add</a></p>'; 
      } 
     } 
    } 

    function cart(){ 
     foreach($_SESSION as $name => $value){ 
      if($value>0){ 
       if(substr($name, 0, 5) == 'cart_'){ 
        $id = mysql_real_escape_string(substr($name, 5, (strlen($name)-5))); 
        $get = mysql_query("SELECT id, name, price FROM products WHERE id='$id'"); 
        while($get_row = mysql_fetch_assoc($get)){ 
         $sub = $get_row['price']*$value; 
         echo $get_row['name'].' x '.$value.' @ $'.number_format($get_row['price'], 2).' = $'.number_format($sub, 2); 
       } 
      } 
      else{ 
       echo "Your cart is empty"; 
      } 
     } 
    } 

    ?> 
    </body> 
</html> 
+3

檢查你的花括號中的'購物車()'這就是錯誤的。最有可能的是,你忘記了最後一個循環。 – Tchoupi 2013-02-15 21:50:51

回答

2

你缺少一個右括號這個while循環:

while($get_row = mysql_fetch_assoc($get)){ 
    $sub = $get_row['price']*$value; 
    echo $get_row['name'].' x '.$value.' @ $'.number_format($get_row['price'], 2).' = $'.number_format($sub, 2); 
2

您的上一個函數永遠不會關閉。如果你正確地縮進它(如何PHP正在讀取):

function cart(){ 
    foreach($_SESSION as $name => $value){ 
     if($value>0){ 
      if(substr($name, 0, 5) == 'cart_'){ 
       $id = mysql_real_escape_string(substr($name, 5, (strlen($name)-5))); 
       $get = mysql_query("SELECT id, name, price FROM products WHERE id='$id'"); 
       while($get_row = mysql_fetch_assoc($get)){ 
        $sub = $get_row['price']*$value; 
        echo $get_row['name'].' x '.$value.' @ $'.number_format($get_row['price'], 2).' = $'.number_format($sub, 2); 
       } 
      } 
      else{ 
       echo "Your cart is empty"; 
      } 
     } 
    } 
//???? 

看起來你忘了關閉while聲明。

+0

謝謝。這工作。 – WorldxFree 2013-02-15 21:54:48