PHP / SQL: вставка $ row ['id'] в новую таблицу с помощью PHP вставляет все идентификаторы строк, а не только один - PullRequest
0 голосов
/ 22 мая 2018

У меня есть система, в которой вы нажимаете ссылку, чтобы вставить две таблицы данных в таблицу.Есть несколько изображений со ссылками рядом с ними.

Итак, в основном:

1) Пользователь входит в систему, изображения извлекаются из базы данных в виде BLOB-объектов.

2) Клики aкнопка «использовать купон»

3) Код использует запрос JOIN для добавления идентификатора купона и текущего пользователя в базу данных.

4) Код отобразит все изображения купонов, которые не былиused.

Если я вручную добавлю идентификатор купона и идентификатор пользователя в базу данных, он отлично работает и отображает только неиспользованные купоны.Однако у меня есть два вопроса.Работает только кнопка последних изображений.Если у меня есть 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 
    }
?>  

У меня такое ощущение, что это как-то связано с тем, как мой запрос вставки находится внутри цикла, но я не могу понять, что именно не так.Любая помощь будет оценена!

...