2011-05-04 268 views
4

我只是做了一個PHP函數刪除按鈕,刪除數據庫行

function deletebooking($orderID){ 

    $sql="DELETE FROM bs_reservations WHERE id='".$orderID."'"; 
    $result=mysql_query($sql) or die("oopsy, error when tryin to delete events 2"); 

} 

我有處理提交的表單一個PHP文件,然後顯示一個HTML頁面。如何添加一個刪除預訂按鈕,將上述功能調用到HTML頁面。 $ orderID變量已經設置。

建議表示歡迎

+0

在查詢中的$ orderID之前加上'(int)'。 – zerkms 2011-05-04 03:34:36

回答

5

您可以使用JavaScript代碼的按鈕,單擊要刪除的記錄 作爲

<input type="button" name-"abc" id="abc" onclick="return Deleteqry(<?php echo $orderID ?>);"/> 

現在你可以寫<head></head>作爲

function Deleteqry(id) 
{ 
    if(confirm("Are you sure you want to delete this row?")==true) 
      window.location="yourpagename.php?del="+id; 
    return false; 
} 

內的JavaScript功能現在你可以寫在你的頁面頂部爲

if($_GET['del']) 
    { 
    deletebooking($orderID); 

    }  

在這裏,我們正在使用javascript警告框刪除構造的消息警報...

+0

感謝隊友,與if語句我保持在同一個文件或在「yourpage.php」 – Simon 2011-05-04 04:06:21

+0

是的,你可以寫if($ _ GET ['del'])代碼位於yourpagename.php文件頂部 – Varada 2011-05-04 04:38:40

+0

由於某些原因,它不會刪除預訂。有什麼問題我的sql – Simon 2011-05-04 05:00:16

2

下面是一個例子網頁,我們稱之爲page.php

<? 
    include "includes/dbconnect.php"; 
    include "includes/functions.php"; 

    if ($_POST['delete']){ 
     deletebooking(intval($_POST['delete'])); 
     echo "deleted!"; 
     exit; 
    } 
?> 
<form action="page.php" method="post"> 
<input type="hidden" name="delete" value="<?=intval($orderID)?>" /> 
<input type="submit" value="Delete order #<?=intval($orderID)?>" /> 
</form> 

的一個文件既是形式出示給用戶和執行實際刪除的代碼。我們將要刪除的記錄的ID作爲隱藏表單值傳遞。

+0

這工作正常,但有一個問題,因爲即時通訊新的PHP。我不明白「your_page.php」中需要的是隻加載一個頁面嗎? – Simon 2011-05-04 03:46:10

+0

這其中包含了你的功能和代碼在我的崗位 – Cal 2011-05-04 04:52:57

+0

第二個片段偏偏它實際上沒有刪除任何文件。 這是我的「your_Page.php」 <?php \t \t include「includes/dbconnect.php」; \t包括「includes/functions.php」; \t \t if($ _POST ['delete']){ deletebooking($ orderID); } 回聲 「刪除」 ?> – Simon 2011-05-04 05:08:47

3

兩件事。首先,查看「SQL注入」。清理查詢的輸入。

第二:不要這樣做。這不是一個好主意。如果頁面上已經設置了orderID,那麼用戶可能會將其更改爲任何他們想要的內容,然後將其刪除。相反,您應該將訂單ID刪除與身份驗證相關聯,或者具有訂單ID的狀態(例如「已刪除」),以防止丟失任何數據。

除此之外,其他答案會做你需要的。這並不複雜。

0

我也建議在你的函數中添加一個重載這種方式的id不會留在刪除後的url行動。

$page = 'current.php'; 

if($_GET['del']) 
    { 
    deletebooking($orderID,$page); 

    } 

function deletebooking($orderID,$page){ 

    $sql="DELETE FROM bs_reservations WHERE id='".$orderID."'"; 
    $result=mysql_query($sql) or die("oopsy, error when tryin to delete events 2"); 
    header('Location: '.$page, true, 303); 
}