首页 > 解决方案 > PHP/SQL:使用 PHP 将 $row['id'] 插入新表是插入所有行 ID,而不仅仅是一个

问题描述

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

所以基本上:

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

2) 点击“使用优惠券”按钮

3) 代码使用 JOIN 查询将优惠券 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 
    }
?>  

我觉得这与我的插入查询在循环内的方式有关,但我无法弄清楚到底是什么问题。任何帮助,将不胜感激!

标签: phpsqljoininsert

解决方案


推荐阅读