【问题标题】:Edit and delete button on each row for table data?表格数据每行上的编辑和删除按钮?
【发布时间】:2013-02-23 10:19:06
【问题描述】:

我正在做一个电影库作为学校作业,并从数据库表中获取电影列表,我希望在每一行旁边都有一个编辑和删除选项。

我想为它使用编辑/删除链接。喜欢:

"<a href='moviestorage.php?edit=" . $id . "'>Edit</a>"

但我不确定如何获取每部电影的 id,以便将其从数据库中删除。我应该写什么查询?我需要有一个单独的 delete.php 文件吗? 我是一个非常新手,所以请多多包涵:) 下面你可以看到我已经完成的代码。

 <?php 

        require 'connect.inc.php';

//This feels incomplete... I´m trying here to fish the ID...
        $id = "SELECT id from movies";
        $query = "DELETE FROM movies WHERE id='$id'";


        $query = "SELECT * FROM movies, categories WHERE movies.genre_id = categories.genre_id";
        $result = mysql_query($query);

        if (!$result) die ("Database access failed:" .mysql_error()) ;

        $rows = mysql_num_rows($result);

        echo '<table><tr><th>Title</th><th>Release year</th><th>Genre</th><th>Director</th><th>Update</th><th>Delete</th></tr>';

        for ($j = 0 ; $j < $rows ; ++$j) {
        echo '<tr><td>' . mysql_result($result,$j,'title') . '</td>' ;
        echo '<td>' . mysql_result($result,$j,'release_year') . '</td>' ;
        echo '<td>' . mysql_result($result,$j,'genre') . '</td>' ;
        echo '<td>' . mysql_result($result,$j,'director') . '</td>' ;
        echo '<td>'."<a href='edit_movie.php?edit=" . $id . "'>Edit</a>".'</td>' ;
        echo '<td>'."<a href='delete.php?delete=" . $id . "'>Delete</a>".'</td></tr>' ;

        }
        echo '</table>'; 

        include 'add_movie.php';
    ?>

【问题讨论】:

  • 我当然希望delete.php 上有一个确认对话框...有已知的用户代理可以“预取”页面以获取结果。始终通过POST 进行更改,GET 不应该更改数据(尽管他们当然可以稍后将表格显示给POST)。

标签: php mysql sql database html-table


【解决方案1】:

我建议您为每一行使用一个带有删除和编辑按钮以及带有 ID 的隐藏字段的表单。然后,您可以将该表单发布到正确的脚本并确定要在该处执行的操作。

如果您必须使用链接来删除项目,至少让链接指向另一个确认页面,其中包含用户必须提交的表单并将其发布到您的删除脚本。

【讨论】:

  • 感谢您的评论!是的,也许我应该这样做!我应该把洞表,所有字段都放在一个表格中吗?或者也许后一个选项更好,让链接指向delete.php,那里有一个确认删除表单...@jeroen
  • @Karolina 我会为每个条目/电影使用一个表单,而不是所有字段都使用一个表单。无论上一步(按钮或链接)如何,确认步骤总是一个好主意。
  • 再次嗨,所以我只是尝试为删除按钮回显一个表单并输入 value="' .mysql_result($result,$j,'id') .'" 我不不知道如何获取 id,这不起作用。我在这里发布的代码工作了很长时间,如果我必须将所有内容更改为表单,我不知道该怎么做。所以我想我可以为按钮编辑和删除放置一个表单,并使用 value="' . mysql_result($result,$j,'id') . '" 。有错吗?
【解决方案2】:

如果您必须在新页面上编辑和删除,那么您可以这样放置超链接

  echo "<a href=\"edit.php?id=".mysql_result($result,$j,'id')."\"><strong>EDIT</strong>";

  echo "<a href=\"delete.php?id=".mysql_result($result,$j,'id')."\"><strong>delete</strong>";

对于 conformation 删除,您可以在删除链接上使用它

  echo "<a href=\"delete.php?id=".mysql_result($result,$j,'id')."\" onclick=\"return confirm('You want to delete your own account???');\"><strong>delete</strong>";

比使用

获取下一页的id
    $id = $_GET['id'];

希望对你有用

【讨论】:

  • 感谢您的回复!我刚刚尝试了您的代码,但无法使其正常工作:(我设法通过使用隐藏字段制作表单来解决删除按钮。但我想我想做编辑选项的链接和那个链接正在导致编辑表单页面。我只是不知道如何让选择的 ID 跟随到编辑页面,以便表格字段中的数据将填写在编辑表单中。我快疯了不能解决这个问题:(
  • 首先通过 $id=$_GET['id']; 很容易得到 id而不是在 $result=mysql_query ("select * from table_name where id='$id'") 中获取 sql 结果并使用 while($row = musql_fetch_assoc($result)){ $id = $row['id']}而不是以您必须使用 的形式回显结果
【解决方案3】:

如果您需要简单有效的解决方案,请使用数据表。 :) 请在谷歌搜索。花了一些时间研究如何实现它,将来会节省很多时间。

【讨论】:

    猜你喜欢
    • 2011-11-05
    • 1970-01-01
    • 2021-02-08
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多