从mysql中删除特定行

时间:2014-10-04 16:19:22

标签: php mysql

我是php / mysql的初学者,它就像我的第一个网站。我想要做的是一个循环,显示来自mysql(有效)的记录和删除按钮,所以我可以随时删除整行。我编写了代码,但它不起作用。

while ($row = mysql_fetch_array($result)) {
echo "<table><TR><TD class='nazwa'>" . $row["nazwa"] .
     "</br></TD><TD class='opis'>" . $row["opis"] .
     "</br></TD><TD class='fotka'> <img src=". $row["zdjecie"] .
     "></br></TD><TD class='linkowanko'>" . $row["link"] .
     "</TD></TR>\n</br></br></br></table>";
     //usuwansko
     $row["id"] = $_GET['id'];
      echo "<form action='marta.php' method='post'>
     <INPUT TYPE = 'submit' Name = 'Submit1' VALUE = 'Usun'>
     </form>";
      if (isset($_POST["Submit1"] ) ) 
      {
      mysql_query($db,"DELETE FROM marta WHERE id = $id");
      }

PS。我知道这可能很糟糕,对不起:/

1 个答案:

答案 0 :(得分:2)

我不知道您是否真的会使用它来创建一个实时网站,或者只是用它来进行培训。但是,当我查看您的代码时,有一些事情会立即脱颖而出。

到目前为止,您在这里做的最糟糕的事情是直接从表单中使用用户数据并在mysql查询中使用它。这是巨大的安全风险。您应该至少使用mysql_real_escape_string清理您的输入。但我建议您开始使用PDOmysqli_*

其次,你要在一个非常低效的循环中查询数据库。您应首先收集所有id并将它们放入数组中,然后使用这些ID查询数据库。

第三,我没有看到你把id放在任何一行中。因此,您实际上并不知道id对您尝试删除的数据的影响。

第四;您每次都要创建一个表而不是创建行。您应该只创建一次表并向其添加新行。