2013-04-10 33 views
-1

我想从MySQL数据库中删除一行,但我无法做到这一点,虽然我可以更新该行。 第一部分是更新代码,第二部分是删除代码。从PHP中的数据库中删除一行

有趣的是,它显示我成功删除的警报,但实际上在MySQL数据库中没有什么会改变。

<?php 
// for updating Check if button name "Submit" is active, do this 
if(isset($_POST['Submit']) && $_POST['Submit'] == 'update') 
    { 
$sql1=mysql_query(" UPDATE `".$tbl_name."` SET `username`='".$_REQUEST['user']."' , `password`='".$_REQUEST['pass']."' , `name`='".$_REQUEST['name']."' , `lastname`='".$_REQUEST['lastname']."' , `phone`='".$_REQUEST['phone']."' , `state`='".$_REQUEST['state']."' , `details`='".$_REQUEST['details']."' WHERE `id`='".$_REQUEST['id']."' "); 
$result1=mysql_query($sql1); 
    } 

if(isset($result1)){ 
?> 
<script language="javascript">alert('successfuly updated');</script> 
<?php 
print(redirect('editteacher.php')); 
} 
    mysql_close(); 

?> 

<?php 
//for deleting Check if button name "Submit" is active, do this 
    if(isset($_POST['delete']) && $_POST['delete'] == 'delete user') 
    { 
$sql1=" DELETE FROM `".$tbl_name."` WHERE `username`='789' "; 

$result1=mysql_query($sql1); 

if(isset($result1)){ 
?> 
<script language="javascript">alert('successfuly deleted');</script> 
<?php 

print(redirect('editteacher.php')); 
    } 
} 
mysql_close(); 

?> 
+2

db的用户权限? – Jean 2013-04-10 21:09:05

+0

错误?你有没有检查你实际上有删除权限? – Think 2013-04-10 21:09:18

+0

[请不要在新代码'mysql_ *'功能(http://bit.ly/phpmsql)。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[红框](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 – 2013-04-10 21:10:28

回答

1

替换该行

$result1=mysql_query($sql1); 

通过

$result1=mysql_query($sql1) or die(mysql_error()); 

会告诉你任何错误与代码。

总的来说,我会建议改进你的代码:

$html = ""; 
$redirectTo = ""; 

// for updating Check if button name "Submit" is active, do this 
if(isset($_POST['Submit']) && $_POST['Submit'] == 'update') 
{ 
    $q = " UPDATE `".$tbl_name."` SET `username`='".$_REQUEST['user']."' , `password`='".$_REQUEST['pass']."' , `name`='".$_REQUEST['name']."' , `lastname`='".$_REQUEST['lastname']."' , `phone`='".$_REQUEST['phone']."' , `state`='".$_REQUEST['state']."' , `details`='".$_REQUEST['details']."' WHERE `id`='".$_REQUEST['id']."' "; 
    $sql1 = mysql_query($q); 
    $result1 = mysql_query($sql1) or die(mysql_error()); 

    if($result1){ 
    $html = "<script language=\"javascript\">alert(\"successfuly updated\");</script>"; 
    $redirectTo = "editteacher.php"; 
    //not sure what you are trying to do here? 
    //print(redirect('editteacher.php')); 
    } 
} 
//for deleting Check if button name "Submit" is active, do this 
elseif(isset($_POST['delete']) && $_POST['delete'] == 'delete user') 
{ 
    $q = " DELETE FROM `".$tbl_name."` WHERE `username`='".$_REQUEST['user']."' "; 
    $sql1=mysql_query($q); 
    $result1=mysql_query($sql1); 

    if($result1){ 
    $html = "<script language=\"javascript\">alert(\"successfuly deleted\");</script>"; 
    $redirectTo = "editteacher.php"; 
    //not sure what you are trying to do here? 
    // print(redirect('editteacher.php')); 
    } 
} 

echo $html; 
if($redirectTo){ 
    print(redirect($redirectTo)); 
} 
mysql_close(); 
+0

TNX我做了什么你说的和错误是“没有选择的数据库”我该怎么办? – 2013-04-10 21:20:27

+0

这是因为您关闭了连接。试试我刚才在这里加入现在 – Richard 2013-04-10 21:21:19

+0

由于它的工作代码和问题已经解决 – 2013-04-10 21:25:10

0
  1. 删除双查询

    变化$sql1=mysql_query(" UPDATE “$ tbl_name。” to $ SQL1 = “UPDATE`”。$ tbl_name。”因为你有双查询。

+0

实际上在我的代码中有这个行的函数 – 2013-04-10 21:15:25

+0

是的,但是如果你有一个函数重定向($ file){..}为什么你打印它而不是运行它。这是否工作? – 2013-04-10 21:18:51