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

+0

오류가 있습니까? 실제로 DELETE 권한이 있는지 확인 했습니까? – Think

+0

[새 코드에서 mysql_ * 함수를 사용하지 마십시오.] (http://bit.ly/phpmsql). 더 이상 유지 관리되지 않으며 공식적으로 사용되지 않습니다 (https://wiki.php.net/rfc/mysql_deprecation). [빨간색 상자] (http://j.mp/Te9zIL)를 참조하십시오. 대신 [* prepared statements *] (http://j.mp/T9hLWi)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용하십시오. mysqli) - [이 기사] (http://j.mp/QEx8IB)는 어떤 결정을 내리는 데 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 튜토리얼입니다] (http://j.mp/PoWehJ). –

답변

1

당신에게 모든 오류를 표시합니다 그

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

으로이 라인

$result1=mysql_query($sql1); 

교체 코드 번호

전반적으로 코드 개선을 권장합니다 :

$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 나는 당신이 한 말을 끝냈습니다. 오류는 "데이터베이스를 선택하지 않았습니다"입니다. 어떻게해야합니까? –

+0

연결을 종료했기 때문입니다. 방금 추가 한 코드를 지금 사용해보십시오. – Richard

+0

감사합니다. 문제가 해결되었습니다. –

0
  1. 이중 쿼리를

    변화 $sql1=mysql_query(" UPDATE 삭제 ". $ tbl_name을합니다." to $ SQL1 = "UPDATE '". $ tbl_name을. "당신이 있기 때문에 이중 쿼리.

+0

실제로이 코드의 맨 위에는이 줄의 기능이 있습니다. –

+0

네,하지만 리디렉션 ($ file) {..} 기능이 있다면 그냥 인쇄하고 실행하는 것이 아닙니다. 이게 효과가 있니? –

관련 문제