Php 从mysql中删除特定行

Php 从mysql中删除特定行,php,mysql,Php,Mysql,我是php/mysql的初学者,它就像我的第一个站点。我试图做的是一个循环,它显示mysql中的记录,使用delete按钮,这样我就可以随时删除整行。我写的代码,但它不工作 while ($row = mysql_fetch_array($result)) { echo "<table><TR><TD class='nazwa'>" . $row["nazwa"] . "</br></TD><TD class='opis

我是php/mysql的初学者,它就像我的第一个站点。我试图做的是一个循环,它显示mysql中的记录,使用delete按钮,这样我就可以随时删除整行。我写的代码,但它不工作

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");
      }

另外,我知道这可能很糟糕,对此我很抱歉://

我不知道你是否真的会用它来创建一个实时网站,或者只是为了培训。但是,当我看你的代码时,有两件事会立竿见影

到目前为止,您在这里做的最糟糕的事情是直接使用表单中的用户数据,并将其用于mysql查询。这是一个巨大的安全风险。您应该至少使用mysql\u real\u escape\u字符串清理输入。但我建议你开始使用or

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

第三,我没有看到您将id放在任何一行中。因此,您实际上不知道要删除的数据的id是什么


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

您可以详细说明一下,但它不起作用吗?你收到错误了吗?不,它什么也不做。这是页面,你可以尝试使用urself+1。实际上,这个代码有更多的问题。它受到基本业务逻辑和表示分离以及存储紧密耦合的影响logic@bad_boy是的,我本可以继续,但我想我会保持简短;我的id只是数据库中的自动增量选项,如果我只显示行[id],它将显示右侧number@xox1141是的,但是你没有在你的身体里的任何地方使用它;