为什么删除按钮会一直删除最新的行php

时间:2014-01-03 17:53:02

标签: php

嗨我试图删除使用与PHP连接的确认脚本,但它总是删除我输入的最新行,我已经在线搜索如何修复它,但似乎我仍然不是真的明白它是如何工作的, 这是我的代码

    <?php 
        $query = "SELECT * FROM mspartner";
        $sql=mysql_query($query);
    ?>          
        <table class="show_data" id="partner">
            <tr>        
            <td>Partner ID</td>
                <td>Partner name</td>
                <td>addresses</td>
                <td>Image</td>
                 <td>Delete/Edit</td>
            </tr>
            <?php 
                while($fetch=mysql_fetch_array($sql)){
            ?>
            <tr>

                <td> <?php echo $fetch['partnerID']; ?></td>
                <td style="width:100px;"><?php echo $fetch['partnername']; ?></td>
                <td><?php echo $fetch['address']; ?></td>
                <td><?php echo $fetch['image']; ?></td>

                <td>
                 <script>
                    function confirmation(){
                        var message = "are you sure?";
                        var konfirmasi = confirm(message);
                        if(konfirmasi == true) {
                                 window.location="index.php?delete_partner=<?php echo $fetch['partnerID']; ?>";
                        }
                        else {

                        }
                    }
                </script>
                <input type="image" class="icon" src="images/asset/delete.jpg" onClick="confirmation() ">   

这是我的php删除代码

             <?php 

$id = $_GET['delete_partner'];
$sql="DELETE FROM `mspartner` WHERE `partnerID` = '$id' ";
echo $sql;
$query = mysql_query($sql);
header('Location:index.php?partner');
          ?>

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

您继续使用新的confirmation功能替换confirmation

因此,只要它运行,它将只运行最后一次迭代。


尝试创建类似的确认函数(通过传入id):

function confirmation(id){
    var message = "are you sure?";
    var konfirmasi = confirm(message);
    if(konfirmasi) {
        window.location="index.php?delete_partner=" + id;
    }
    else {
        // something else
    }
}

侧点:

  

mysql_*个功能不再支持,它们为officially deprecated不再维护,将为removed个未来。您应该使用PDOMySQLi更新代码,以确保将来的项目功能。

答案 1 :(得分:-1)

您只需在页面末尾编写一次确认js函数。更好的方法是将它写在一个单独的js文件上,但这是另一个问题。 使确认函数采用一个参数,其中包含您要删除的记录的ID。

用以下代码替换调用该函数的代码:

onClick="confirmation('<?php echo $fetch['partnerID']; ?>')"

您的新确认功能应为:

   function confirmation(recordId){
     var message = "are you sure?";
     var konfirmasi = confirm(message);
     if(konfirmasi == true) {
        window.location="index.php?delete_partner=" +  recordId;
     } 
   }