Как удалить записи в базе на основании выбора пользователя?

Суть задачи. Есть вывод заявок мастеров из базы где предлагается откликнуться на задание по ссылке. В каждом таком блоке отображаются все мастера кто откликнулся на задание. При нажатии на ссылку нужно сделать чтобы в базу попадала только текущий ответ, в остальные заявки других мастеров удалялись. Вот фрагмент кода.

//выбираем заказы конкретного пользователя и выводим заявки по ним
function current_User_Orders($uid){
    $rows=array();

    $db = new DB();
    $connection = $db->connect();

    $result = mysqli_query($connection, "select * from trader.order WHERE uid='$uid'") or die(mysqli_connect_error());

    while($row = $result->fetch_array())
    {
        $rows[] = $row;

        echo 'На ваш заказ номер ' . $row['id'] . ' Откликнулись следующие мастера' . '<br><br>';
        is_Request($row['id']);
    }
}

//функция определяющая есть ли заказы по заявкам
function is_Request($req){
    $rows2=array();

    $db = new DB();
    $connection = $db->connect();

    $result = mysqli_query($connection, "select * from trader.request WHERE id_req='$req'") or die(mysqli_connect_error());

       while ($row2 = $result->fetch_array()) {
           $rows2[] = $row2;
           echo '<div class=center>'.$row2['name'].'  <a href="#" class="task">Подтвердить заказ</a></div>'. '<br>';
       }
}

 <div class="col-md-6">
                <div class="requests">
                    <?php
                    current_User_Orders($_SESSION['username']);
                    ?>
                </div>
            </div>
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 1
@devian3000
Передавайте ID заявки и ID работы в GET параметрах (если нужна именно ссылка).
т.е. для каждой строки ссылка будет что-то типа

<a href="/ticket/accept.php?ticketId=3&employeeId=65">Выбрать исполнителя</a>


А в самом php делаем два запроса предположим таких (не зная структуры точно не скажу).
Запросы написаны на PHP PDO c placeholder-ами. меняйте по своему усмотрению.

--- Удаляем всех кроме мастера которого выбрали для подтверждения заказа
     DELETE FROM order_employers WHERE orderId = :ticketId and employeeId<> :employeeId;
--- Обновляем статус тикета(заказа). Говорим что запись в этот тикет закончена, исполнитель выбран
--- Для статуса лучше использовать какой-нибудь INT и связанную таблицу со статусами.
     UPDATE order SET status='Выбран исполнитель' where ticketId = :ticketId;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы