2011-05-04 220 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); 
}