2010-04-03 99 views
0

大家好我有这条线在我的PHP代码MySQL只删除不删除数据,整个条目

`$insert = "DELETE FROM allocation_table WHERE job = '$jobnumber' " ; 
    Mysql_query ($insert) ;` 

问题是,它会删除从一条线的所有值在我的表,但不是入境本身。正如你在图片中看到的,如果我删除了job = 315的地方,它不会删除该行,但会删除所有的条目。

然而在这个代码之前(不同的表格)。它工作正常,整个行被删除

$insert = "DELETE FROM event WHERE jobnumber = '$jobnumber' " ; 
mysql_query ($insert) ;enter code here 

任何人都可以提供一些建议吗? alt text http://img34.imageshack.us/img34/4431/tablenj.jpg

+0

id = 315的作业是否被其他表的任何地方引用? – 2010-04-03 22:02:03

回答

0

在代码中是否有任何错误处理例程?
您可能还需要添加一些调试输出(甚至更好的使用像xdebug调试器)
(简单化)例如:

$insert = "DELETE FROM allocation_table WHERE job = '$jobnumber' " ; 
echo '<pre>Debug: query=', htmlspecialchars($insert), '</pre>'; 
$rc = mysql_query($insert); 
if (!$rc) { 
    echo '<pre>mysql_query failed: ', mysql_error(), '</pre>'; 
} 
else { 
    echo '<pre>Debug: affected rows=', mysql_affected_rows(), '</pre>'; 
} 

$insert = "DELETE FROM event WHERE jobnumber = '$jobnumber' " ; 
echo '<pre>Debug: query=', htmlspecialchars($insert), '</pre>'; 
$rc = mysql_query($insert); 
if (!$rc) { 
    echo '<pre>mysql_query failed: ', mysql_error(), '</pre>'; 
} 
else { 
    echo '<pre>Debug: affected rows=', mysql_affected_rows(), '</pre>'; 
} 
+0

是的,我做了(为了清晰起见,虽然删除),但任何方式的条目不被删除只是数据 谢谢 – Mick 2010-04-03 21:55:28

0

也许你有你的MySQL表一些奇怪的设置,导致查询功能不同。您是否自己创建了表格(使用PMA?)或从其他地方导入它?

当您使用PHPMyAdmin进行删除时,它运行的查询是什么?

0

尝试在PhpMyAdmin中删除,看看会发生什么。至少在那里你可以很容易地看到任何错误信息。

你有外键定义和/或表约束?