繁体   English   中英

删除与PHP问题的MySQL行

[英]delete a row on mysql with php issue

我试图在php上删除一行(我做到了),但总是删除最后一行,我知道为什么...因为每次我刷新或输入页面时,每次我得到id =“ lastrow”时,我的问题就是不知道为什么每次我都得到最后一行ID ...`$ query =“ SELECT * FROM ph”; $ rs = mysql_query($ query);

    while ($ph = mysql_fetch_array($rs)) {
      echo utf8_encode("
        <tr class='etapastext'>
          <td >
            ".$ph['name']."
          </td>
          <td>
            <input type='submit' name='".$ph['id']."' value='Eliminar' >
            <input type='hidden' name='name'  value='".$ph['id']."'>
          </td>
          "); }`

然后我可以访问要删除的商品的ID,使用此代码

$query = "DELETE  FROM ph WHERE ph.id = '".$_POST['name']."'";
mysql_query($query);

我正在使用$_POST['name']因为这是一种表单,所以我不知道即时通讯正在执行最佳方法还是即时通讯执行不佳

我回显了$queryDELETE FROM ph WHERE ph.id = '24'那里DELETE FROM ph WHERE ph.id = '24'当“ 24”始终是表的最后一行时

作为定义,每种输入类型都应以一种形式使用唯一的名称。您正在做的是使用

name="name"

因此从技术上讲,当您的表单将被提交时,最后一个输入名称为name ='name'的输入类型将与表单一起发送。 那就是你做错了。 我不是专业人士,但根据我的说法,您有3种选择可以删除数据库表中的一行。

  1. 使用get方法发送带有url的值(最佳方式),例如

    www.xyz.com/delete.php?id=5

  2. (会弄乱您的代码)为每种输入类型使用单独的表单并提交按钮,最重要的是,您的表单应以td开始

  3. 您将在运行时使用javascript创建一个表单,并根据选定的行值填充表单并提交表单(如果您想使用post,则建议使用该表单,因为这会使您的代码整洁)

希望对你有帮助

每个html.tr.td需要一个表格

因为您提交了整个结果,所以当form.input.name相同时,最后一个总是覆盖以前的任何结果。

除非您将input.name更改为其他名称

while ($ph = mysql_fetch_array($rs)) {
    echo '
        <form ....>
        <tr class="etapastext">
            <td>', $ph['name'], '</td>
            <td>
                <input type="submit" value="Eliminar">
                <input type="hidden" name="name" value="', $ph['id'], '">
            </td>
        </tr>
        </form>
    ';
)

从目前为止我所看到的,您的<tr>标记并未在while()循环内关闭。 我假设对于$ph每个数组项,您希望它们每个都有自己的表行。

下面的固定代码

while ($ph = mysql_fetch_array($rs)) {
     echo utf8_encode("
         <tr class='etapastext'>
             <td >
                 ".$ph['name']."
             </td>
             <td>
                 <input type='submit' name='".$ph['id']."' value='Eliminar' >
                 <input type='hidden' name='name'  value='".$ph['id']."'>
             </td>
         </tr>
     ");
}

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM