PHP/SQL:使用PHP将$row['id']插入到新表中就是插入所有行id,而不仅仅是一个

PHP/SQL:使用PHP将$row['id']插入到新表中就是插入所有行id,而不仅仅是一个,php,sql,join,insert,Php,Sql,Join,Insert,我有一个系统,您可以单击一个链接将两条数据插入到一个表中。多个图像旁边有链接 所以基本上: 1用户登录后,图像将作为blob从数据库中检索 2单击“使用优惠券”按钮 3代码使用联接查询将优惠券ID和当前用户ID添加到数据库中 4代码将显示所有尚未使用的优惠券图像 如果我手动将优惠券ID和用户ID添加到数据库中,它工作得非常好,只显示未使用的优惠券。然而,我有两个问题。只有“最后的图像”按钮工作。如果我列出了3张图片,只有第3张图片上的按钮起作用。除此之外,该按钮将删除所有图像,而不仅仅是对应于$

我有一个系统,您可以单击一个链接将两条数据插入到一个表中。多个图像旁边有链接

所以基本上:

1用户登录后,图像将作为blob从数据库中检索

2单击“使用优惠券”按钮

3代码使用联接查询将优惠券ID和当前用户ID添加到数据库中

4代码将显示所有尚未使用的优惠券图像

如果我手动将优惠券ID和用户ID添加到数据库中,它工作得非常好,只显示未使用的优惠券。然而,我有两个问题。只有“最后的图像”按钮工作。如果我列出了3张图片,只有第3张图片上的按钮起作用。除此之外,该按钮将删除所有图像,而不仅仅是对应于$row['id']的单个图像

<?php

$coupons = mysqli_query($link, 
"SELECT coupons.*
FROM coupons
LEFT JOIN deleted_coupons ON
  deleted_coupons.coupon_id = coupons.id AND
  deleted_coupons.user_id = {$_SESSION['act']}
WHERE deleted_coupons.coupon_id IS NULL"
);

if (isset($_GET['del_task'])) {
    $sql = "INSERT INTO deleted_coupons (coupon_id, user_id) VALUES ('{$row['id']}', '{$_SESSION['act']}')";
    mysqli_query($link, $sql); 
}

    while ($row = mysqli_fetch_array($coupons)) { 

    ?>
    <tr>
        <td><?php echo $row['id'] ?>
        <td class="task">
        <?php
        echo '<img src="data:image/jpeg;base64,'.base64_encode( $row['name'] ).'"/>';
        ?>
        </td>
        <td class="delete"> 
            <a href="welcome.php?del_task=<?php echo $row['id'] ?>">Use Coupon</a> 
        </td>
    </tr>

    <?php 
    }
?>  

我有一种感觉,它与我的插入查询在循环中的方式有关,但我无法找出到底是什么地方出了问题。任何帮助都将不胜感激

您正在尝试插入不存在的$row['id']。您可能希望在准备好的语句中使用$GET['del_task']。另外,选择可能会在插入之后出现,否则您将无法获得最近插入的图像。@AbraCadaver为什么它会在最后一张图像上工作?如果单击最后一个图像按钮,它确实会将我想要的所有内容添加到数据库中,包括行ID。唯一的问题是它会添加所有内容,而不仅仅是一个图像,因此它会从我的页面中删除所有图像,而不仅仅是我想要删除的图像。最重要的是,我的echo$row['id']工作得很好,并在图像旁边显示row id