2013-02-15 92 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