从MySQL显示表并链接以从数据库中删除每一行

时间:2015-08-19 20:00:11

标签: php jquery mysql

当谈到我的一小段PHP代码时,我已经陷入了困境。这个脚本的作用是从mysql中显示整个表,并在每行中添加一个超链接来删除这样的行。

       <?php 

    $connection=mysql_connect('localhost','root','') or die(mysql_error());
error
    mysql_select_db('localhost_db',$connection) or die(mysql_error());

    $query=mysql_query("SELECT * FROM cms_contest") or die(mysql_error());

    if(mysql_num_rows($query)>0):

    ?>

    <table width="100%" border="0">
      <tr style="font-weight:bold;">
        <td align="center">Id</td>
        <td align="center">First Name</td>
        <td align="center">Last Name</td>
        <td align="center">Email</td>
         <td align="center">Phone</td>
        <td align="center">Answer</td>
        <td align="center">Remove</td>  
      </tr>
      <?php 

      while($row=mysql_fetch_object($query)):?>
      <tr>
        <td align="center"><?php echo $row->ID;  //row id ?></td>
        <td align="center"><?php echo $row->name; // row first name ?></td>
        <td align="center"><?php echo $row->surname; //row las tname  ?></td>
        <td align="center"><?php echo $row->email; //row created time ?></td>
        <td align="center"><?php echo $row->phone_number; //row created time ?></td>
            <td align="center"><?php echo $row->contest_answer; //row created time ?></td>
                <td align="center"><a href="#">REMOVE</a></td>
      </tr>
      <?php endwhile;?>
    </table>
    <?php 

    else: ?>
    <h3>No Results found.</h3>
    <?php endif; ?>

如果出现一个带有以下问题的简短javascript弹出窗口,那将是完美的:您确定要删除此条目吗?确定/取消。

我不知道怎么做...感谢任何提示!

3 个答案:

答案 0 :(得分:1)

简单/愚蠢的方法:

<td><a href="deleteme.php?id=<?php echo $row-ID ?>">nuke me</a></td>

但如果网页蜘蛛或浏览器链接预取工具在此页面上松动,您将会记录所有记录。

好一点:

<td>
    <form method="post" action="deleteme.php">
       <input type="hidden" name="id" value="<?php echo $row->ID ?>" />
       <input type="submit" value="Nuke me" />
    </form></td>

然后有各种选项涉及单选按钮/复选框,或者JS可以捕获点击链接等...

但是,最后,他们都归结为&#34;你必须将行的ID发送回服务器&#34;。你如何做到这一点取决于你...只是不要使用普通的&#34;点击这里&#34;版本

答案 1 :(得分:1)

确实有几种不同的方法可以做到这一点。我喜欢的一种方法是将整个表包装在提交到删除脚本的表单中,并为每行使用一个按钮作为其值。

<form method="post" action="delete.php">
    <table width="100%" border="0">
        <tr style="font-weight:bold;">
            <td align="center">Id</td>
            <td align="center">First Name</td>
            <td align="center">Last Name</td>
            <td align="center">Email</td>
            <td align="center">Phone</td>
            <td align="center">Answer</td>
            <td align="center">Remove</td>  
        </tr>
        <?php while($row=mysql_fetch_object($query)): ?>
        <tr>
            <td align="center"><?php echo $row->ID;  //row id ?></td>
            <td align="center"><?php echo $row->name; // row first name ?></td>
            <td align="center"><?php echo $row->surname; //row las tname  ?></td>
            <td align="center"><?php echo $row->email; //row created time ?></td>
            <td align="center"><?php echo $row->phone_number; //row created time ?></td>
            <td align="center"><?php echo $row->contest_answer; //row created time ?></td>
            <td align="center">
                <button name="delete-id" type="submit" value="<?php echo $row->ID; ?>">
                    REMOVE
                </button>
            </td>
        </tr>
    <?php endwhile;?>
    </table>
</form>

还有许多不同的方法可以确认删除。我在客户端最简单的方法是将onclick="return confirm('Are you sure?');"添加到删除按钮。

答案 2 :(得分:1)

点击事件:

<a href="#" onClick="confirmDelete(<?php echo $row->ID; ?>)">DELETE</a>

<script type="text(javascript">
function confirmDelete(id){
    if(confirm('sure u want to delete entry with id: ' + id + '?')){
        window.location.href = "ursite.php?id="+id+"&delete=true";
    }
}
</script>

PHP

if(isset($_GET['delete'])){
    $stmt = "DELETE FROM cms_contest WHERE ID = ".$_GET['id'];
    mysql_query($stmt);
}

这是最糟糕的做法。
我建议你看看:
jQuery $.post() {
{3}}

我希望它会对你有所帮助。