2014-10-30 142 views
0

我正在构建一个简单的网页,允许用户从数据库中删除记录,然后页面将重新加载删除的记录。无法找出用于完成此操作的代码。这是我的主网页:用php删除记录,然后重新加载页面

<html> 
<head> 
<title>Change Record form</title> 

<style type="text/css"> 
td {font-family: tahoma, arial, verdana; font-size: .875em } 
</style> 


</head> 
<body> 
<a href="add_new_form.php">Add new record</a> 
<br> 
<br> 
<?php 
    $con=mysqli_connect("localhost", "root", "", "customers"); 
    if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$strSQL = "SELECT * FROM music"; 

$rs = mysqli_query($con, $strSQL); 

while($row = mysqli_fetch_array($rs, MYSQLI_BOTH)) { 

    // Write the value of the column FirstName (which is now in the array $row) 
    echo "<br>"; 
    echo "<br>";  
    echo $row['artist'] . "<br />"; 
    echo $row['title'] . "<br />"; 
    echo $row['format'] . "<br />"; 
    echo $row['notes'] . "<br />"; 

    echo '<FORM METHOD="LINK" ACTION="update_form.php"> 
     <INPUT TYPE="submit" VALUE="Update"> 
     </FORM>'; 

    echo '<FORM METHOD="LINK" ACTION="delete_process.php"> 
     <INPUT TYPE="submit" VALUE="Delete"> 
     </FORM>'; 
} 
?> 

然后这是delete_process页:

<?php 
$id = $_GET['id']; 
$artist = $_GET['artist']; 
$title = $_GET['title']; 
$format = $_GET['format']; 
$notes = $_GET['notes']; 

//create connection to DB 
$con=mysqli_connect("localhost", "root", "", "customers"); 

//check connection 
if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$sql = "DELETE from 'MUSIC' WHERE 'id' = $id"; 

mysql_query($sql); 
?> 

基本上当用户点击删除按钮,该特定的记录将被删除,主页将刷新记录被删除。真的不知道代码,谢谢!

+0

第一次使用准备好的语句,列引号是反引号而不是单引号 – Ghost 2014-10-30 01:34:27

+1

我很确定'link'不是一个有效的表单方法。您应该使用'POST'并添加一个隐藏字段,其中包含要修改/删除的记录的ID。 – jeroen 2014-10-30 01:36:25

+2

'mysql_query($ sql);'那个不行。在'MUSIC'中加入'$ sql =“DELETE'WHERE'id'= $ id”;' - 点#1:混合API。第二点:错误的标识符。另外,Jeroen说。 – 2014-10-30 01:37:18

回答

0

你delete_process.php的末尾添加页眉

<?php 
//redirect to index page 
header('Location:index.php'); //replace index.php with the page you want to redirect to 
?> 

应该工作

0

您需要

'<input type="hidden" name="id" value="' . $row['id'] . '" />' 

添加到形式的职位,以delete_process.php。

但是,您应该知道,您发布的代码非常不安全,而且通过SQL注入进行攻击并删除整个数据库将会很轻松。

相关问题