【问题标题】:PHP - Add to cart button adds blanks to databasePHP - 添加到购物车按钮将空白添加到数据库
【发布时间】:2015-05-08 10:46:24
【问题描述】:

在网上商店浏览页面中,我试图创建一个“添加到购物车”按钮,但是当按下该按钮时,一个空字段(所有行中仅包含零)被插入到表“cart_items”中。

我希望 addtocart.php 将所有行插入到 cart_items 表中。

这是按钮代码:

<form action="addtocart.php" method="post">
<td><input name="id" type="hidden" value="'.$id.'" /></td>
<td>
<div><input type="submit" name="submit" value="Føj til kurv" /></div>
</td>
</form>

$id 之前在文档中定义为$row['id']

这是 addtocart.php 代码:

<?php
ob_start();
mysql_connect("localhost","root","") or die("Could not connect");  
mysql_select_db("comics") or die("could not find DB"); 
if(!is_numeric($_POST['id'])) { 

$eID=mysql_escape_string($_POST['id']);
    }

$addtocart="INSERT INTO cart_items SET id='".$eID."'"; 
mysql_query($addtocart);        
header("location:browsedata2.php"); 
exit; 
ob_end_flush(); 
?> 

我没有收到任何错误,它只是添加了一个空白。

我不确定我是否在这里提供了足够的信息,如果您需要更多信息,请直接说出来。

请停下来。

【问题讨论】:

  • 在执行前打印你的id和sql查询。

标签: php mysql button cart shopping


【解决方案1】:

那是因为$_POST["id"] 不是数字,它是一个字符串。所以$eID 永远不会被设置。

试试这个;

$eID=intval($_POST["id"]);

而不是;

if(!is_numeric($_POST['id'])) {
    $eID=mysql_escape_string($_POST['id']);
}

【讨论】:

    【解决方案2】:

    您正在检查!is_numeric(),只有当id 不是数字时才会设置$eID。试试 -

    if(is_numeric($_POST['id'])) { 
        $eID=mysql_escape_string($_POST['id']);
        $addtocart="INSERT INTO cart_items SET id='".$eID."'"; 
        mysql_query($addtocart);
    } else {
       // show some error if you want
    }
    

    【讨论】:

    • 谢谢,这给出了正确的 id。但是我仍然缺少其他行中的其余信息。我从中获取数据的表包含七行,我插入数据的表也是如此。但只有行 'id' 得到一个值(现在是正确的,多亏了你)。如何插入剩余行中的信息?
    • 你是如何插入它们的?
    • 好吧。我的想法是,我正在使用 id 插入整个项目,但我想那是错误的吗?我一直在使用本教程:webreference.com/programming/php/Shopping_03/index.html 他在哪里做类似的事情。我跳过了大多数安全内容,因为这将在本地运行。例如,如果我还需要插入一个名为“price”的行,我该怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 2016-09-28
    • 2016-12-06
    • 1970-01-01
    • 2021-02-03
    相关资源
    最近更新 更多