2012-10-01 93 views
0

首先,我在表格中顯示一個值列表,我想要做的是添加一個基於表格唯一表ID的刪除按鈕。php mysql刪除資料

所以我試圖從我的數據庫中刪除一個值使用這個按鈕我已經宣佈,但是我現在正在做什麼它只是不刪除任何數據庫。

這是我的數據庫表

CREATE TABLE `5050goosedown` (
    `goosedown_id` int(11) unsigned NOT NULL auto_increment, 
    `name` varchar(100) NOT NULL default '', 
    `width` int(8), 
    `height` int(8), 
    `normal_fill` int(8), 
    `our_fill` int(8), 
    `old_price` DECIMAL(3,2), 
    `price` DECIMAL(3,2), 
    PRIMARY KEY (`goosedown_id`) 
    ) TYPE=MyISAM; 

這是我的按鈕,它從而重新加載此同一個頁面的表單..

echo '<td><input type="submit" name="'.$row['goosedown_id'].'" value="Delete" /></td>"'; 

所以這是一個按鈕,說刪除,其內名稱是該表的唯一ID ...(我有幾個標籤之一,並希望這樣做)

然後,當頁面重新加載我有這個if語句捕獲特定的刪除按下按鈕,德...這是不是ATM工作..

//DELETE QUERIES 
if(isset($_POST['goosedown_id']) and is_numeric($_POST['goosedown_id'])) 
{ 
    // here comes your delete query: use $_POST['deleteItem'] as your id 
    mysql_query("DELETE FROM 5050goosedown WHERE goosedown_id='goosedown_id'"); 
} 

任何幫助將appreicated。

回答

2

更改您的HTML:

echo '<td><form method="post" action=""><input type="hidden" name="goosedown_id" value="'.$row['goosedown_id'].'" /><input type="submit" name="sumbit" value="Delete" /></form></td>"'; 

和腳本:

if(isset($_POST['goosedown_id']) and is_numeric($_POST['goosedown_id'])){ 
    mysql_query("DELETE FROM 5050goosedown WHERE goosedown_id=".(int)$_POST['goosedown_id']); 
} 

你不透過按鈕通過ID因爲它的值是Delete,您需要創建一個隱藏字段。

+0

+1'name =「goosedown_id」value =「'。$ row ['goosedown_id']。'」'現在你已經知道了;-) – Havelock

+0

:),我犯了一個錯誤當我清理代碼並意外刪除該部分時。 –

+0

這個工作完美!感謝一羣人! – HurkNburkS

1

由於goosedown_id被定義爲int(11) unsigned在查詢你不能引用它:

"DELETE FROM 5050goosedown WHERE goosedown_id=$goosedown_id" 
//           ^  ^no quote 

當然$ goosedown_id的,是從形式公佈值:

$goosedown_id = (int)$_POST['goosedown_id']; 
//    ^^^ prevents SQL Injection 

所以,你必須做一個「假」後,因爲該值不能在提交:

<input type="hidden" name="goosedown_id" value="<?php echo $row['goosedown_id'] ?>" /> 

你也可以寫爲一個完整的PHP字符串:

<?php echo '<input type="hidden" name="goosedown_id" value="' . $row['goosedown_id'] . '" /> ?> 
+0

+1用來說明該解決方案太爽 – dmp

+0

謝謝你。但是我得到這條線上**回聲「​​」; **錯誤說**解析錯誤:語法錯誤,意外的T_STRING,期待','或';'在** – HurkNburkS

+0

我調整了我的答案 – JvdBerg

0

試試這個查詢,而不是:

mysql_query("DELETE FROM 5050goosedown WHERE goosedown_id=".mysql_real_escape_string($_POST'goosedown_id')); 

此外,還要確保該按鈕實際上是在與method="post"一個form內。