2013-04-10 79 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