所以我有这个脚本来删除与某个数据库字段匹配的表项。问题是该脚本会添加另一个字段的值,就像它想象的那样。然而,当它重定向时,其他值尚未删除。我似乎无法弄清楚这个问题,我们非常感谢任何帮助。
有两个表格按原样结构
id,username,cvalue
id,username,pid
假设要做的是删除具有相同pid的每个条目并添加到cvaule,添加到cvalue有效,但它不会删除任何内容。
示例:
表1
1 Bob 5
2史蒂夫4
表2
1 Bob A4DC
2 Bob A4DC
3 Steve GQ4A
4 Steve GQ4A
5 Bob A4DC
在Bob运行脚本之后,它应该是
表1
1 Bob 8
2史蒂夫4
表2
3 Steve GQ4A
4史蒂夫GQ4A
这是代码
require 'connect.php';
$username = $_SESSION['username'];
$id = $_SESSION['id'];
$queryone = "SELECT `cvalue` FROM `tableone` WHERE username='$username'";
$queryrunone = mysql_query($queryone);
$query_assocone = mysql_fetch_assoc($queryrunone);
$querytwo = "SELECT `pid` FROM `tabletwo` WHERE pid='$id'";
$queryruntwo = mysql_query($querytwo);
$query_assoctwo = mysql_fetch_assoc($queryruntwo);
$cvalue = $query_assoc['cvalue'];
$pid = $query_assoctwo['pid'];
$tablequery = mysql_query("
SELECT *, COUNT(1) AS `enteries` FROM `tabletwo` WHERE `pid`='$pid' GROUP BY `pid`
");
$row = mysql_fetch_assoc($tablequery);
$enteries = $row ['enteries'];
$cvalue = $cvalue + $enteries;
$query = "UPDATE `tableone` SET `cvalue`='$cvalue' WHERE `username`='$username'";
mysql_query($query);
$query = "DELETE from `tabletwo` WHERE `pid`=$id";
mysql_query($query);
unset ($_SESSION['id']);
header ('Location: index.php');
编辑:
我应该提到,当我$ id时,它抓住上一页中已经等于pid的id。
答案 0 :(得分:0)
试试这个:
$query = "DELETE from `tabletwo` WHERE `pid`='" .mysql_real_escape_string ($id) ."'";
注意SQL注入技术。您的代码不安全。