2010-04-03 61 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中刪除,看看會發生什麼。至少在那裏你可以很容易地看到任何錯誤信息。

你有外鍵定義和/或表約束?