向表中插入数据时出错


Error in insert data into table

我已经按照如何创建购物车的说明,我想做一个修改,使购物车系统可以用作餐厅系统的工作人员记录客户的订单,所以系统不需要记录客户的详细信息。当我尝试将所有选择的数据插入到表中时,错误发生在cart.php.

错误如下:

注意:未定义的索引:名称在C:'xampp'htdocs'emakengku'cart。Phpon line 7

注意:未定义索引:quantity inC:'xampp'htdocs'emakengku'cart.php第8行

注意:未定义索引:价格在C:'xampp'htdocs'emakengku'cart。Phpon line 9

下面是index.php 的代码
<?
session_start();
error_reporting(E_ALL);
require("connection.php");
if(isset($_GET['page'])){
    $pages=array("products", "cart");
    if(in_array($_GET['page'], $pages)) {
        $_page=$_GET['page'];
    }else{
        $_page="products";
    }
}else{
$_page="products";
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>

<body>
</body>
</html>
<link rel="stylesheet" href="style2.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
});
</script> 
</head>
<body>
<div id="container">
<div id="main">
<?php require($_page.".php");     ?>
</div>
<div id="sidebar">
<h1>Cart</h1>
<?php 
if(isset($_SESSION['cart'])){
$sql="SELECT * FROM products WHERE id_product IN (";
foreach($_SESSION['cart'] as $id => $value) {
$sql.=$id.",";
}
$sql=substr($sql, 0, -1).") ORDER BY name ASC";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query)){
?>
<p><?php echo $row['name'] ?> x <?php echo $_SESSION['cart'][$row['id_product']]['quantity'] ?></p>
<?php }
?>
<hr />
<a href="index2.php?page=cart">Go to Cart</a>

<?php


}else{
echo "<p>Your Cart is empty</p>";
}
?>
</div>
</div>
</body>

Products.php

<?php
    if(isset($_GET['action']) && $_GET['action']=="add"){
        $id=intval($_GET['id']);
        if(isset($_SESSION['cart'][$id])){
            $_SESSION['cart'][$id]['quantity']++;
        }else{
            $sql_s="SELECT * FROM products
                WHERE id_product={$id}";
            $query_s=mysql_query($sql_s);
            if(mysql_num_rows($query_s)!=0){
                $row_s=mysql_fetch_array($query_s);

                    $_SESSION['cart'][$row_s['id_product']]=array(
                            "quantity" => 1,
                            "price" => $row_s['price']
                            );

                }else{
                    $message="This product id it's invalid!";

        }
        }
        }


?>

<h1>Product List</h1>
<?php 
    if(isset($message)){
    echo "<h2>$message</h2>";
    }
?>
<table>
<tr>
    <th>Name</th>
    <th>Description</th>
    <th>Price</th>
    <th>Action</th>
</tr>
<?php
$sql="SELECT * FROM products ORDER BY name ASC";
$query=mysql_query($sql);
while ($row=mysql_fetch_array($query)) {
?>
<tr>
    <td><?php echo $row['name'] ?></td>
    <td><?php echo $row['description'] ?></td>
    <td>RM <?php echo $row['price'] ?></td>
    <td><a href="index2.php?page=products&action=add&id=<?php echo $row['id_product'] ?>">Add To Cart</a></td>
</tr>
<?php
}
?>
</table>

cart.php

<?php
error_reporting(E_ALL);
 ini_set('display_errors', '1');
require("connection.php");
if(isset($_POST['submit2']))
    $name=$_POST["name"];
    $quantity=$_POST["quantity"];
    $price=$_POST["price"];
 $sql_insert = "INSERT INTO order ('name', 'quantity', 'price') 
values ('name', 'quantity', 'price')";
echo "sucess!";

 if(isset($_POST['submit'])){
 foreach($_POST['quantity'] as $key => $val) {
    if($val==0) {
    unset($_SESSION['cart'][$key]);
    }else{
    $_SESSION['cart'][$key]['quantity']=$val;

    }
    }

 }
?>

<a href="index2.php?page=products">Go back to product page</a>
<h1>View Cart</h1>
<form method="post" action"index2.php?page=cart">
<table>
<tr>
    <th>Name</th>
    <th>Quantity</th>
    <th>Price</th>
    <th>Item Price</th>

</tr>
<?php
    $sql="SELECT * FROM products WHERE id_product IN (";
foreach($_SESSION['cart'] as $id => $value) {
$sql.=$id.",";
}
$sql=substr($sql, 0, -1).") ORDER BY name ASC";
$query=mysql_query($sql);
$totalprice=0;
while($row=mysql_fetch_array($query)){
    $subtotal=$_SESSION['cart'][$row['id_product']]['quantity']*$row['price'];
    $totalprice+=$subtotal;
?>
<tr>
<td><?php echo $row['name'] ?></td>
<td><input type="text" name="quantity[<?php echo $row['id_product'] ?>]" size="5" value="<?php echo $_SESSION['cart'][$row['id_product']]['quantity'] ?>"</td>
<td>RM <?php echo $row['price'] ?></td>
<td>RM <?php echo $_SESSION['cart'][$row['id_product']]['quantity']*$row['price'] ?></td>

</tr>

<?php 
}
?>
<tr>
<td>Total Price: <?php echo $totalprice  ?></td>

</tr>
</table>
<button type="submit" name="submit"> Update Cart</button>
<button type="submit" name="submit2"> Update Cart</button>

</form>
<br />
<p> To remove an item,set the quantity to 0</p>

像这样更改sql查询并尝试。删除列名的单引号。

$sql_insert = "INSERT INTO order (name, quantity, price) 
    values ('name', 'quantity', 'price')";

并确保存在以下值。例如,您可能已经指定cart.php作为任何html表单页面的操作页面,并且该表单应该使用方法"POST"。

$name=$_POST["name"];
$quantity=$_POST["quantity"];
$price=$_POST["price"];