2014-02-05 74 views
-2

該行不會在我的數據庫中刪除。我不知道什麼是錯誤的TT,但是再次,我對數據庫沒有任何知識。在MYSql中刪除查詢幫助PHP

這裏是我的刪除查詢代碼:

require_once('connect.php'); 

     $sql_delete="DELETE FROM test WHERE pid='$pid'"; 
     $qry_delete = mysql_query($sql_delete); 

,這裏是在PHP代碼。當用戶點擊DELETE時,它會自動刪除選定的行。請幫忙。

while($data = mysql_fetch_array($qry)){ 
     $html .= '<tr align="center">'; 
     $html .= '<td>'; 
     $html .= '<a href="updateprocess.php">Update</a> | <a href="deleteprocess.php">Delete</a>'; 
     $html .= '</td>'; 
     $html .= '<td>'; 
     $html .= $data['pname']; 
     $html .= '</td>'; 
     $html .= '</tr>'; 
    } 

編輯:我應該改變 「PID = $ PID」 到PNAME = PNAME? edit2:pid和pname是我數據庫中的字段。

+0

你是從哪裏得到$ PID?如果你echo $ sql_delete你得到了什麼查詢? – Hassan

+5

停止使用'mysql',其棄用。使用'mysqli'。 – user2936213

+3

@ user2936213很高興你指向不使用mysql。但這還不夠。如果你仍然在使用MySQLi,也許是時候進行改變了:http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/。我強烈建議使用PDO。 –

回答

1
while($data = mysql_fetch_array($qry)){ 
     $html .= '<tr align="center">'; 
     $html .= '<td>'; 
     $html .= '<a href="updateprocess.php">Update</a> | <a href="deleteprocess.php?pid=' . $data['pid'] . '">Delete</a>'; 
     $html .= '</td>'; 
     $html .= '<td>'; 
     $html .= $data['pname']; 
     $html .= '</td>'; 
     $html .= '</tr>'; 
    } 

deleteprocess.php將是這個樣子的:

if(isset($_REQUEST['pid'])) { 
    $pid = mysql_escape_string($_REQUEST['pid']); 
    $sql_delete="DELETE FROM test WHERE pid='$pid'"; 
    $qry_delete = mysql_query($sql_delete); 
} else { 
    die("Something went wrong, try again"); 
} 
+0

這是一個很好的'做什麼',但沒有告訴OP他們出錯的地方。簡而言之:系統需要確切知道按下了哪個「刪除」鏈接,因此您將查詢字符串中的ID傳遞給PHP並讀取它。之前$ pid是空白的,所以你刪除了'where pid =''',它不匹配任何行,所以沒有任何東西被刪除。甚至更短:PHP和MySQL不是mindreaders。 –