2013-10-22 36 views
-2

我回應了一些來自數據庫的數據,現在當我想刪除一些記錄時,我遇到了問題。如何刪除只有一個記錄不是全部具有相同內容?

讓我們說我有這樣的記錄:3,3,4,6,3

<input type="radio" name="ocenaa" value="' . $row['slo'] . '"> 

當我想刪除最後一個記錄(3),它會刪除我有內容3中的所有記錄。 ..

我的查詢:

$sql="DELETE FROM frend WHERE slo=('$_POST[ocenaa]')"; 

如何刪除剛剛過去的記錄不是所有三個?

+2

爲每一行使用一個唯一的標識 – aynber

+2

如何避免惡意用戶注入'\';將表格frend --'放到表單提交中?通過閱讀並學習如何避免漏洞全開[SQL注入攻擊](http://bobby-tables.com)漏洞 –

+0

由於MySQL不保證沒有ORDER BY子句的訂單,您如何知道這是'最後'嗎? – 2013-10-22 20:04:00

回答

0

這是做你所期望的......你的數據不是唯一的。爲每一行使用獨特的我。

是否有任何其他方式來識別行?

+0

你怎麼知道哪一行屬於哪個學生? – Gavin

+0

我每桌都有桌子。我只有兩個學生,因爲我正在爲我和我的朋友製作在線成績簿。 – Miha

+0

您需要在每個表中創建具有自動增量的唯一ID的另一列。這樣你就可以在你的SQL中使用MAX來刪除最後插入的值和選定的值。 – Gavin

0

我唯一可以告訴你的是在結構中添加一個唯一的(auto_incrementing)_key phpMySql可以讓你輕鬆地做到這一點。從那時起你會這樣做; 說,關鍵是名爲id在PHP

$query = mysql_query("SELECT `id` FROM frend WHERE 1 
ORDER BY `id` DESC 
LIMIT 1") 

$result = mysql_fetch_array($query); 

mysql_query("DELETE FROM frend WHERE ID = ".$result[0]); 只調用從一個獨特的錶行的最好期望的結果:)明確刪除。

我不是一個大師哈哈,但這聽起來像我遇到過的熟悉的問題。

0

你試過:

$sql="DELETE FROM frend WHERE slo=('$_POST[ocenaa]') LIMIT 1;"; 

此外,還必須至少考慮使用mysql_real_escape_string($_POST[ocenaa])更好,庫MySQLi或PDO來制定你的查詢。

相關問題