我对PHP很新,我不能解决一件事,我打赌这是一个非常简单的解决方案。
问题是,在一个页面上,我有多行显示Product ID
。
我试图通过在不同的.php上检索帖子$product_id = $_POST['pid'];
来删除所选行,但是我返回的值是它发布的最后一行而不是所选行,这导致我删除了最后一行例如,尝试删除第一行时的行。
为了让我获得选定 POST product_id
而不是最后发布的帖子,我需要更改哪些内容?
感谢。
正如我所说的那么新,所以我确定我的代码中存在一些错误,或者它的方式过于简单,无论如何都是我试图做的事情。
$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页面上,我尝试删除所选行。
$sql2 ="DELETE FROM shoppingcart_items WHERE product_id = '".$_REQUEST["pid"]."' AND shoppingcart_id ='".$_REQUEST["wid"]."'";
所以会发生什么,我删除的是7的最后一个值,而不是我为例3选择的那个。
答案 0 :(得分:0)
echo
您尝试在PHP中运行的查询,以检查它是否正确。调试Web应用程序时,只需要做几件事。
Bonus - 始终确保转义数据或将其转换为整数(如果是ID),以确保不会受到SQL注入的攻击。</ p>
E.g。
$querySTR = 'SELECT * FROM sensitive_data WHERE id=' . (integer)$_POST['id'] . " AND username='" . $db->real_escape_string($_POST['username']) . "'";
请注意,这是使用PHP的mysqli扩展,$db
是有效的数据库连接资源。
哦,除非你发布特定的代码,否则没有人可以提供具体的帮助:)
答案 1 :(得分:0)
看起来您为foreach中的每个可能的产品ID分配了相同的“输入”名称(即'name =“pid”'),因此您最终会得到多个相同的名称......
就像说: '苹果是绿色的' '苹果红了' 'Apple是黑人'
苹果有哪种颜色?