2014-02-05 73 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。 –