PHP 高手 请进来看下这段购物车代码

<?
session_start();
$conn=mysql_connect("localhost","root","123456") or die("fail");//连接数据库
mysql_query("SET NAMES gb2312");//设置字符集
mysql_select_db("mydata");//选择数据库
if($_POST['id']&&$_POST['count']&&$_POST['do']=="add")//如果产品id和数量不为空
{
$id=(int)$_POST['id'];
$count=(int)$_POST['count'];//强制转换id和数量类型为整型
if($id>0&&$count>0)//如果id和数量大于0
{
$sql="SELECT name,price FROM product WHERE id='$id'";
$r=mysql_query($sql);
if(mysql_num_rows($r)==1)
{
$row=mysql_fetch_array($r);//从数据库中取出特定产品信息
}
else
{
echo "ID错误";
exit;
}
if(isset($_SESSION['cart'][$id]))//如果该商品已经存在
{
$_SESSION['cart'][$id]+=$count;//商品数量增加
}
else
{
$_SESSION['cart'][$id]=$count;//如果不存在则添加进购物车
}
}
else
{
echo "error1";
exit;
}
}
if(isset($_POST['do'])&&$_POST['do']=="update")//如果提交修改表单
{
foreach($_POST['qty'] as $k=>$v)//获得购物车每个商品的id和修改后的数量
{
$pid=$k;
$qty=$v;
if($qty==0)
unset($_SESSION['cart'][$pid]);
else if($qty>0)
$_SESSION['cart'][$pid]=$qty;
else echo "error2";
}
}

if(isset($_SESSION['cart'])&&!empty($_SESSION['cart']))//如果购物车不为空
{
$q='SELECT id,name,price FROM product WHERE id IN (';
foreach($_SESSION['cart'] as $k=>$v)
{
$q.=(int)$k.",";
}
$q=substr($q,0,-1).")";
$r=mysql_query($q,$conn);
$num=mysql_num_rows($r);
//以下显示html内容,展示购物车中的商品
if($num>0)
{
echo '
<form action="addcart.php" method="post">
<input type="hidden" name="do" value="update" /><table align="center" border="0">
<tr>
<td>产品名称</td>
<td>价格</td>
<td>数量</td>
<td>小计</td></tr>

';
$total=0;
while($row=mysql_fetch_array($r))
{
$price=$row['price'];
$subtotal=$_SESSION['cart'][$row['id']]*$price;
$total+=$subtotal;
echo '
<tr>
<td>{$row["name"]}</td>
<td>{$row["price"]}</td>
<td><input name={$qty[$row["id"]]} type="text" size="5" value={$_SESSION["cart"][$row["id"]]} /></td>
<td>{$subtotal}</td>
</tr>

';
}
echo '<tr>
<td>TOTAL:</td>
<td>'.$total.'</td>
</tr>
<tr>
<td><button type="submit" name="submit" value="update">update</button></td></tr></table></form>';
}
}
else echo "error";
?>
此代码无法正常运行,直接输出error,不知道为什么,请指点一二

$sql="SELECT name,price FROM product WHERE id='$id'";
$id是变量,php中虽然双引号和单引号都能表示字符串,但是不同的是,单引号不能解析变量,也就是说'$aaaa'表示的就是字符串$aaaa,而不会解析字符串!
改为:
$sql="SELECT name,price FROM product WHERE id=$id";
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-20
if($_POST['id']&&$_POST['count']&&$_POST['do']=="add")
怎么&&2边会不要空格呢?
第2个回答  2009-03-20
if($_POST['id']&&$_POST['count']&&$_POST['do']=="add")<br>怎么&&2边会不要空格呢?你可以去“返利168”看看啊