如何从PHP(mysql)中的许多表中删除1个选定行?

如何从PHP(mysql)中的许多表中删除1个选定行?,php,mysql,Php,Mysql,我有一个PHP函数,可以从MYSQL中写出我的表。我制作了一个按钮,用于删除选定的行(命名为torles) 我如何用我的“torles”按钮删除我按下它的那一行 function munkalapok(){ kapcsolat(); //connect to mysql, and write out all rows $sql="SELECT * FROM munkalap ORDER BY id DESC"; $vissza=mysql_query($sql); mysql

我有一个PHP函数,可以从MYSQL中写出我的表。我制作了一个按钮,用于删除选定的行(命名为torles)

我如何用我的“torles”按钮删除我按下它的那一行

function munkalapok(){
  kapcsolat();  //connect to mysql, and write out all rows

  $sql="SELECT * FROM munkalap ORDER BY id DESC";
  $vissza=mysql_query($sql);
  mysql_close(kapcsolat()); //close mysql

  print "<div class='datagrid'><center>";
  print "<table border='1' align='center'>";
  print "<thead><th>Módosítás</th><th>Munkalapszám</th></thead>";

  $i='1'; //for count rows
  while ($sor = mysql_fetch_array($vissza)) {
    print "<tr><tbody>";
    print "<form method='POST'>".
          "<input type='submit' value='$i. Törlés' name='torles'>".
          "</form>" . "</td>";
    //Create the button
    if(isset($_POST['torles'])){
      kapcsolat(); //open mysql
      $parancs="DELETE FROM munkalap WHERE munkalapszam = '$munka'";                 
      mysql_query ($parancs);
      mysql_close (kapcsolat());
      header("Location: ./Munkalapok.php");
    }
    print "<td>" . $sor['munkalapszam'] . "</td>";
    print "</tbody></tr>";
    $i++;
  }
  print "</table>";
  print "</center></div>";
}
函数munkalapok(){
kapcsolat();//连接到mysql,并写出所有行
$sql=“按id描述从munkalap订单中选择*”;
$vissza=mysql\u查询($sql);
mysql_close(kapcsolat());//关闭mysql
打印“”;
打印“”;
印刷“MódosításMunkalapszáM”;
$i='1';//用于计数行
而($sor=mysql\u fetch\u数组($vissza)){
打印“”;
打印“”。
"".
"" . "";
//创建按钮
如果(isset($_POST['torles'])){
kapcsolat();//打开mysql
$parancs=“从munkalap中删除,其中munkalapszam='$munka';
mysql_查询($parancs);
mysql_close(kapcsolat());
标题(“位置:./Munkalapok.php”);
}
打印“$sor['munkalapszam]”;
打印“”;
$i++;
}
打印“”;
打印“”;
}

您是否使用ID识别数据库中的记录?您应该将一个ID与每个记录与autoincrement函数相关联。这将是你的主键。然后使用记录ID标识表行,不要使用$i变量


您应该检查数据库的正常表单

什么是
$munka
,你是怎么得到这个的..可能是id的

因此,您可以在表单中有一个隐藏字段,并将其作为行id设置为值(无论您拥有什么)

试一试:

print "<tr><tbody>";

print "<form method='POST'><input type='hidden' name='id' value='$sor[munkalapszam]'><input type='submit' value='$i. Törlés' name='torles'></form>" . "</td>";
    //Create the button
if(isset($_POST['torles'])){

kapcsolat(); //open mysql
$munka=(int) $_POST['id'];  //i did this for id
$parancs="DELETE FROM munkalap WHERE munkalapszam = '$munka'";                 
mysql_query ($parancs);
mysql_close (kapcsolat());
print”“;
打印“”。"";
//创建按钮
如果(isset($_POST['torles'])){
kapcsolat();//打开mysql
$munka=(int)$\u POST['id'];//我这样做是为了id
$parancs=“从munkalap中删除,其中munkalapszam='$munka';
mysql_查询($parancs);
mysql_close(kapcsolat());

希望这对您有所帮助

在您的代码中,您可以执行以下操作:

connect to SQL, get rows and print them
while printing
  show a button
  if this button is pressed, delete a row and redirect
end while
if there is posted data
  delete the data
connect to SQL, get rows and print
这是您的第一个错误。 相反,您的代码逻辑应该如下所示:

connect to SQL, get rows and print them
while printing
  show a button
  if this button is pressed, delete a row and redirect
end while
if there is posted data
  delete the data
connect to SQL, get rows and print
您的主要问题(您正在询问的问题)是您创建了按钮,但无法识别按钮按入了哪一行。
您可以添加另一个隐藏的输入,而不是在按钮的值中添加$i变量:

print '<input type="hidden" name="row_id" value="'.$i.'"/>';

我希望您的数据库中的每个元素都有一个id,并且该id是主键。 这么说吧,修改一下

打印“$sor['munkalapszam]”;

这不是最安全的方法,但这会给你一个如何开始的基本想法

您可以在这里阅读关于jQuery ajax的内容: jQuery单击事件:


在后端,您需要一个名为delete.php或soemthing的文件。在该文件中使用id编写删除行的逻辑。通过ajax将id作为参数传递给该文件。

表中是否有主设置?如果有,您需要将其与UI关联,以便确定要删除哪个。Y是的,我使用ID,但我不想在这个页面上写出来。“munkalapszam”值也是唯一的,就像ID一样。$munka是数据库中的“munkalapszam”。它是行的唯一ID。
$( "td" ).click(function() {
   //write the ajax code here to send the id to the server.
});