2013-12-16 58 views
0

我有一个表格,其中填充了来自MySQL数据库的数据,并且每行都接收到它自己的删除按钮。我想要删除每个行的删除按钮,删除数据库中相应的行。我会怎么做呢?以下是我所需要的代码部分,这似乎不起作用。PHP中的“删除行”按钮

if(isset($_POST['id'])) { 
$id = $_POST['id']; 
$delete = mysql_query($conn,"DELETE FROM mods WHERE id = '$id'"); 
} 

忽略不重要的代码。

表/表创建:

echo "<td><form action=\"\" method=\"post\"></td>"; 
    echo "<tr class='modlist'>"; 
    echo "<td>".$row['id']."</td>"; 
    echo "<td><div class=\"edit\" id=\"div_1\">".$row['title']."</div></td>"; 
    echo "<td><div class=\"edit\" id=\"div_2\"><a href=".$row['mod_url'].">".$row['mod_url']."</a></div></td>"; 
    echo "<td><div class=\"edit\" id=\"div_3\">".$row['developer']."</div></td>"; 
    echo "<td><div class=\"edit\" id=\"div_4\">".$row['type']."</div></td>"; 
    echo "<td><div class=\"edit\" id=\"div_5\">".$v162."$nbsp".$v164."$nbsp".$v172."</div></td>"; 
    echo "<td><div class=\"edit\" id=\"div_6\">".$row['title'].",$nbsp".$row['developer']."</div></td>"; 
    echo "<td><div id=\"save\"><input type=\"submit\" name=\"save\" value=\"Save\"></div></td>"; 
    echo "<td><div id=\"delete\"><input type=\"submit\" name=\"delete\" value=\"Delete\"></div></td>"; 
    echo "</tr>"; 
    echo "</form>"; 
    } 

预先感谢。

回答

2

表单操作需要使用名称'id'进行控制,否则$ _POST将不会获得任何标识。

你可以不喜欢它<input type="hidden" name="id" value=".$row['id']." />

另外,我建议你看看How can I prevent SQL injection in PHP?为您的形式,由您所显示的代码,看起来完全处于弱势。

UPDATE

你还必须解决您的$delete查询像NL-X提到:

$delete = mysql_query("DELETE FROM mods WHERE id = '$id'", $conn); 
+0

我在表单中添加了行,以及上面所说的全部内容,但仍然没有运气删除行,有什么想法? – swiftsly

+0

是@swiftsly,我更新了我的帖子。 – zurfyx

+0

我也使用/添加了他的变化,但仍然没有运气。表单动作是否由你提供的代码清空,或者我应该有什么东西?我现在有'action ='“。$ _ SERVER ['PHP_SELF']。”''在这种情况下,它似乎和空白的动作一样。 – swiftsly

3

您有mysql_query()向后的参数。首先传递查询,然后传递$ conn。

$delete = mysql_query("DELETE FROM mods WHERE id = '$id'", $conn); 

但请注意,您现在有SQL注入问题!在使用之前清理$ id!

$id = mysql_real_escape_string($id); 

,并考虑使用mysqliPDO(和使用参数化查询),作为mysql_*已被弃用!

+1

+1用于暗示使用mysqli或PDO。你最好早点学习(并使用)它,而不是晚点。 – ryryan

+1

@swiftsly也看看杰瑞的答案。这也很重要! –

+0

@ nl-x好了,我修复了查询,添加了对$ id的清理,并将其更改为mysqli,但仍不会删除该行。有任何想法吗? – swiftsly