首页
学习
活动
专区
圈层
工具
发布

发邮
EN

Stack Overflow用户
提问于 2013-06-28 19:08:08
回答 2查看 85关注 0票数 0

我对PHP非常陌生,我一件事也想不出来,而且我打赌有一个非常简单的解决方案。

问题是,在一个页面上,我有多行显示Product ID。我试图通过检索不同的$product_id = $_POST['pid'];上的post .php来删除选定的行,但是返回的值是它发布的最后一行,而不是选定的行,这导致我在尝试删除第一行时删除最后一行。

为了获得选择的 POST product_id而不是最后一次发布product_id,我需要更改什么?

正如我说的,我很新,所以我肯定我的代码中有一些错误,或者它的方式太简单了,不管怎样,这是我想要做的。

代码语言:javascript
复制
$sql2 = "SELECT * from shoppingcart_items WHERE shoppingcart_id=".$wid."";
$result2 = mysql_query($sql2, $con) or die('sql2'.mysql_error());

while($row = mysql_fetch_array($result2))                       
$pid = $row['product_id'];                                     
echo '<td><input type="text" name="pid"  value="'. $pid .'"></td> ';  

它检索诸如3、4、5、7等行,而在另一个php页面上,我尝试删除选定的行。

代码语言:javascript
复制
$sql2 ="DELETE FROM shoppingcart_items WHERE product_id = '".$_REQUEST["pid"]."' AND shoppingcart_id ='".$_REQUEST["wid"]."'";

因此,我删除了最后一个值,即7,而不是我选择的那个,例如3。

EN

回答 2

Stack Overflow用户

发布于 2013-06-28 19:14:28

  1. 使用浏览器中的一些开发工具来验证是否将正确的POST数据发送到PHP脚本。我真的(真的,真的,真的)喜欢Chrome的开发工具。您可以查看所有的网络流量,然后获得详细的信息。尽管如此,还是有一堆开发人员工具包很棒。
  2. echo您试图在PHP中运行的查询,以检查它是否正确。

只要调试web应用程序,就需要做几件普通的事情。

奖励-始终确保转义数据或将其转换为整数(在it的情况下),以确保您不会受到SQL注入的攻击。

例如。

代码语言:javascript
复制
$querySTR = 'SELECT * FROM sensitive_data WHERE id=' . (integer)$_POST['id'] . " AND username='" . $db->real_escape_string($_POST['username']) . "'";

注意,这使用的是PHP扩展,$db是一个有效的数据库连接资源。

哦,没有人能给出具体的帮助,除非你发布了特定的代码:)

票数 0
EN

Stack Overflow用户

发布于 2013-06-28 20:12:57

看起来,您要为前面的每个可能的产品id指定相同的“输入”名称(为“name=”“pid”),因此您将得到多个相同的名称.

就像说“苹果是绿色的”,“苹果是红色的”“苹果是黑色的”

这个苹果有什么颜色?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17371931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档