仅从表单更新 sql 表中的最后一条记录

本杰明

我已经实现了 LIKE 功能,但只有表中的最后一条记录得到更新,无论用户单击哪一行的 LIKE 按钮。

我在此处和其他地方查看了与此类似的其他问题,并尝试了建议的补救措施,但没有任何效果。任何帮助表示赞赏!

这将输出表格,其中有一列用于 LIKE 按钮:

<table class="table table-bordered">
           <tr>
            <th>Word ID</th>
            <th>User ID</th>
            <th>User Name</th>
            <th>Word</th>
            <th>Meaning</th>
            <th>Example</th>
            <th>Likes</th>
                   </tr>';

    foreach ($data as $row) 
      { 
        echo '<tr>';
            foreach ($row as $value)
                  { 
                echo '<td>';
                    echo $value;
                echo '</td>';
              } 
echo '<td>
 <form method="POST" action="'.$_SERVER["PHP_SELF"].'">
<input type="hidden" name="LIKE" value="'.$row['wordID'].'">
<input id="'.$row['wordID'].'" type="submit" class="btn btn-success" value="LIKE">
</form> 

     </td>';      
            echo '</tr>';
          }

        echo '</table>';

我的更新代码是:

if($_POST['submit'])  
 {
$sql = "UPDATE vocab SET likes = likes+1 where wordID = '{$row['wordID']}'"; 

$stmt = $db->prepare($sql);

我已经尝试了所有方法,包括添加这样的 javascript 来获取更新代码所需的 ID。没有运气!

echo '<script type="text/javascript">
        function submitForm(){

                var selectButton = document.getElementById( "'.$row['wordID'].'" );
                selectButton.click();
        }
</script>';
杰普比奥

选项1:我会改变:

<input name="like" value="'.$row['wordID'].'" 
    type="submit" class="btn btn-success">

并且:

if (!empty($_POST['like'])) {
    $sql = "UPDATE vocab SET likes = likes+1 where wordID = '".$_POST['like']."'"; 

    $stmt = $db->prepare($sql);
    ...

选项 2:要将 like 显示为按钮值,请尝试以下操作:

<input name="like['.$row['wordID'].']" value="LIKE" 
    type="submit" class="btn btn-success">

并在 php 文件中:

if (!empty($_POST['like'])) {
    foreach ($_POST['like'] as $key => $value) {
        $sql = "UPDATE vocab SET likes = likes+1 where wordID = '".$key."'"; 

        $stmt = $db->prepare($sql);
        ...
    }
}

选项 3:

<input name="like_'.$row['wordID'].'" value="LIKE" 
    type="submit" class="btn btn-success">

和:

if (!empty($_POST)) {
    foreach($_POST as $key => $value) {
        if (substr($key, 0, 5) == 'like_') {
            $sql = "UPDATE vocab SET likes = likes+1 where wordID = '".substr($key, 5)."'"; 

            $stmt = $db->prepare($sql);
            ...

但要小心 SQL 注入。在执行查询或使用参数执行准备好的查询之前,您应该清理 $_POST['like'] 值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL更新或插入基于找到的最后一条记录

来自分类Dev

如何使用C#更新SQL Server中的最后一条记录

来自分类Dev

SQL查询从链接表中检索最后一条记录

来自分类Dev

MS SQL:仅更新每个组的最后一条记录

来自分类Dev

ASP.NET和SQL Server:使用动态值更新最后一条记录

来自分类Dev

如何从sql server中获取最后一条记录?

来自分类Dev

有条件地更新SQL Server中的仅一条记录

来自分类Dev

在 SQL Server 中使用循环更新一条记录

来自分类Dev

如何在SQL中向后运行UPDATE命令(从最后一条记录到第一条)?

来自分类Dev

在SQL Server中查找第二个最后一条记录(如果可用,否则最后一条记录)

来自分类Dev

如何打印SQL Server的最后一条记录

来自分类Dev

SQL Server:从联接查询中仅选择每个客户的最后一条记录

来自分类Dev

sql.eachRow 只将最后一条记录添加到列表中

来自分类Dev

如何根据 SQL 查询中其他聚合列的日期获取最后一条记录

来自分类Dev

多个对象的表单-仅捕获最后一条记录

来自分类Dev

Microsoft Access SQL仅返回一组分组记录中的最后一条记录等于另一列中的某条记录的记录

来自分类Dev

如何在Oracle SQL中检索相同日期的组中的第一条记录和最后一条记录

来自分类Dev

外键仅从表中选择一条记录

来自分类Dev

仅更新python最后一条记录

来自分类Dev

MySQL选择最后一条记录并更新它

来自分类Dev

MySQL选择最后一条记录并更新它

来自分类Dev

从多个表获取每个用户的最后一条记录时,SQL语法错误,也未获取输出

来自分类Dev

SQL查找表并在每个字段中创建一条记录

来自分类Dev

Oracle SQL从有序数据集中获取第一条记录和最后一条记录

来自分类Dev

返回分组消息中的最后一条消息SQL

来自分类Dev

选择SQL Server数据库中的最后一条记录并不总是有效

来自分类Dev

更新表SQL Server中的前1条记录

来自分类Dev

sql查询不检索所有记录只检索最后一条记录

来自分类Dev

SQL查询以在一个表中搜索一条记录,并将其替换为另一张表中的多条记录

Related 相关文章

  1. 1

    SQL更新或插入基于找到的最后一条记录

  2. 2

    如何使用C#更新SQL Server中的最后一条记录

  3. 3

    SQL查询从链接表中检索最后一条记录

  4. 4

    MS SQL:仅更新每个组的最后一条记录

  5. 5

    ASP.NET和SQL Server:使用动态值更新最后一条记录

  6. 6

    如何从sql server中获取最后一条记录?

  7. 7

    有条件地更新SQL Server中的仅一条记录

  8. 8

    在 SQL Server 中使用循环更新一条记录

  9. 9

    如何在SQL中向后运行UPDATE命令(从最后一条记录到第一条)?

  10. 10

    在SQL Server中查找第二个最后一条记录(如果可用,否则最后一条记录)

  11. 11

    如何打印SQL Server的最后一条记录

  12. 12

    SQL Server:从联接查询中仅选择每个客户的最后一条记录

  13. 13

    sql.eachRow 只将最后一条记录添加到列表中

  14. 14

    如何根据 SQL 查询中其他聚合列的日期获取最后一条记录

  15. 15

    多个对象的表单-仅捕获最后一条记录

  16. 16

    Microsoft Access SQL仅返回一组分组记录中的最后一条记录等于另一列中的某条记录的记录

  17. 17

    如何在Oracle SQL中检索相同日期的组中的第一条记录和最后一条记录

  18. 18

    外键仅从表中选择一条记录

  19. 19

    仅更新python最后一条记录

  20. 20

    MySQL选择最后一条记录并更新它

  21. 21

    MySQL选择最后一条记录并更新它

  22. 22

    从多个表获取每个用户的最后一条记录时,SQL语法错误,也未获取输出

  23. 23

    SQL查找表并在每个字段中创建一条记录

  24. 24

    Oracle SQL从有序数据集中获取第一条记录和最后一条记录

  25. 25

    返回分组消息中的最后一条消息SQL

  26. 26

    选择SQL Server数据库中的最后一条记录并不总是有效

  27. 27

    更新表SQL Server中的前1条记录

  28. 28

    sql查询不检索所有记录只检索最后一条记录

  29. 29

    SQL查询以在一个表中搜索一条记录,并将其替换为另一张表中的多条记录

热门标签

归档