2013-07-09 130 views
0

我試圖刪除我的數據庫中的特定字段(不是整行)。 但現在,它不會刪除我的數據庫中的任何東西。只刪除特定字段的查詢

當用戶點擊刪除按鈕,我想空場持有的圖像的路徑。

HTML部分:

<div class="delete_image"><a href="#" id="<?php echo $recipe_path ?>" 
class="delete_image">Remove!</a></div> 

AJAX部分:

$('.delete_image').on("click",function() 
{ 
var ID = $(this).attr("id"); 
var dataString = '$recipe_path='+ ID; 
if(confirm("Are you sure you want to delete this image ?")) 
    { 
    $.ajax({ 
    type: "POST", 
    url: "remove.php", 
    data: dataString, 
    cache: false, 
    }); 
} 
return false; 
}); 

PHP部分(remove.php):

<?php 
include "includes/db.php"; 

if ($_POST['recipe_path']) 
    { 
    $recipe_path = $_POST['recipe_path']; 
    $sql = query("DELETE FROM recipes WHERE $recipe_path = '$recipe_path' "); 
    } 
?> 

我做得不對的SQL查詢?

+2

不使用DELETE,你想使用UPDATE並將其設置爲空字符串。 DELETE只能刪除整行 – 2013-07-09 21:06:01

+2

DELETE將刪除整行。你說你不需要這個,所以你應該看看使用UPDATE,並將正確的字段設置爲''''。 – andrewsi

回答

1

您dataString沒有正確的序列化語法,這就是爲什麼代碼不能正常工作,請嘗試更改爲此:

var dataString = 'recipe_path='+ ID; 

現在的更新代碼,假設ID以上referes到配方路徑,你需要這樣做:

$sql = query("UPDATE recipes SET recipe_path = NULL WHERE recipe_path = '$recipe_path'"); 
2

不應該說是

$sql = query("DELETE FROM recipes WHERE recipe_path = '$recipe_path' "); 

爲什麼$recipe_path

此外,請確保在頁面準備就緒後運行該功能。

$(function(){ 
    $('.delete_image').on("click",function() 
    { 
    var ID = $(this).attr("id"); 
    var dataString = '$recipe_path='+ ID; 
    if(confirm("Are you sure you want to delete this image ?")) 
     { 
     $.ajax({ 
     type: "POST", 
     url: "remove.php", 
     data: dataString, 
     cache: false, 
     }); 
    } 
    return false; 
    }); 
}); 

正如已經指出的那樣,DELETE將刪除整行。

+0

爲什麼downvote? –

+0

不是我,但你錯誤的觀點,使用DELETE是錯誤的 – 2013-07-09 21:18:28

+0

@Dagon真的,謝謝你。幫助他的其餘部分,沒有注意到! –