как вставить принять / отклонить в БД в PHP

0

я создал таблицу встреч, в которой user1 будет добавлять встречи, а user2 будет принимать/отклонять назначение. теперь моя проблема заключается в том, когда нажата кнопка accept и reject, она отображается в таблице соответственно, но я просто не могу понять, как добавить в нее запрос insert, чтобы он мог быть вставлен в db. Я попробовал несколько методов, пытаясь вставить состояние [accept/reject] в db, но я не нашел успеха. я попросил бы кого-нибудь предоставить мне некоторую помощь, чтобы решить проблему. Благодарю.

Изображение 174551

 <form method="post" action="delete.php" > 

       <table cellpadding="0" cellspacing="0" border="0" class="table table-condensed" id="example">
               <thead>
                          <tr>
                                <th>appoinment ID</th>
                              <th>Date</th>
                                <th>time</th>
                              <th>teacher</th>
                             <th>parent</th>
                              <th> accept/reject </th>
                              <th>label</th>
                            </tr>
                   </thead>
                   <tbody>
                        <?php 
                            $query=mysqli_query($conn, "select * from 'app' left join 'par' on par.par_id=app.par_id
                            left join 'tea' on tea.tea_id=app.tea_id
                            ORDER BY app_id DESC");

                                if($query === false)
                                {
                                    throw new Exception(mysql_error($conn));
                                }
                                while($row=mysqli_fetch_array($query))
                                {
                                    $ann_id=$row['app_id'];
                                    $date=$row['date'];
                                    $msg=$row['time'];

                                    $username = $row['username'];
                                     $username = $row['p_username'];
                        ?>
                <tr>
                    <td><?php echo $row['app_id'] ?></td>
                     <td> <?php echo date('j/m/y',strtotime($row['date'])); ?></td>
                    <td><?php echo $row['time'] ?></td>
                   <td><?php echo $row['p_username'] ?></td>
                <td><?php echo $row['username'] ?></td>

                    <td>
        <a href="#" class="reject">reject</a> 
        <a href="#" class="accept">accept</a>
    </td>
    <td>
        <div class="chgtext">PENDING</div>
    </td>

                </tr>

                        <?php   
                                }

                       ?>

                  </tbody>
              </table>
         </div>
      </form>
  • 0
    во- mysql_error($conn) , mysql_error($conn) не будет работать; Вы не можете смешивать разные API, поэтому используйте mysqli_error($conn) с добавленным «i», а затем посмотрите, что произойдет.
  • 0
    @FunkFortyNiner Я знаю, как вставить данные в БД, но здесь я не могу понять, что на самом деле происходит и как добавить запрос на вставку
Показать ещё 11 комментариев

1 ответ

1

Один из способов - передать идентификатор через строку запроса (GET). Таким образом, вы должны обновить встречу, если заданы соответствующие ключевые пары строк запроса.

Лично я считаю, что вы не должны смешивать запросы во время вывода. Сначала создайте материал базы данных вверху и оставьте вывод внизу.

Примечание. Я не очень хорошо знаком с mysqli_, но это будет примерно так:

<?php 
// accept or reject appointment with ID
if (isset($_GET['state'], $_GET['app_id'])) {
    $stmt = mysqli_prepare($conn, "UPDATE app SET state = ? WHERE app_id = ?");
    mysqli_stmt_bind_param($stmt, "sd", $_GET['state'], $_GET['app_id']);
    mysqli_stmt_execute($stmt);
    mysqli_stmt_close($stmt);
}

// query appointments
$query = mysqli_query($conn, "
    SELECT * FROM app 
    LEFT JOIN par ON par.par_id = app.par_id
    LEFT JOIN tea on tea.tea_id = app.tea_id
    ORDER BY app_id DESC
");
?>

<form method="post" action="delete.php" > 
    <table cellpadding="0" cellspacing="0" border="0" class="table table-condensed" id="example">
        <thead>
            <tr>
                <th>appoinment ID</th>
                <th>Date</th>
                <th>time</th>
                <th>teacher</th>
                <th>parent</th>
                <th>accept/reject</th>
                <th>label</th>
            </tr>
        </thead>
        <tbody>
        <?php while($row = mysqli_fetch_array($query)) : ?>
            <tr>
                <td><?= $row['app_id'] ?></td>
                <td><?= date('j/m/y', strtotime($row['date'])) ?></td>
                <td><?= $row['time'] ?></td>
                <td><?= $row['p_username'] ?></td>
                <td><?= $row['username'] ?></td>
                <td>
                    <!-- upon clicking a link, it will redirect to the same page with a query string -->
                    <a href="?state=reject&app_id=<?= $row['app_id'] ?>" class="reject">reject</a> 
                    <a href="?state=accept&app_id=<?= $row['app_id'] ?>" class="accept">accept</a>
                </td>
                <td>
                    <div class="chgtext">PENDING</div>
                </td>
            </tr>
        <?php endwhile ?>
        </tbody>
    </table>
</form>
  • 0
    спасибо за совет и постараюсь разделить запрос и вывод позже, но в настоящее время я застрял в обновлении принять / отклонить. я думаю, что, если (isset ......) был единственным дополнительным кодом, который вы добавили. я пытался добавить его в мой, но не работает
  • 0
    @TheKingMaker И HTML изменился - посмотрите на ссылки. Включите отчеты об ошибках также.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню