я создал таблицу встреч, в которой user1 будет добавлять встречи, а user2 будет принимать/отклонять назначение. теперь моя проблема заключается в том, когда нажата кнопка accept и reject, она отображается в таблице соответственно, но я просто не могу понять, как добавить в нее запрос insert, чтобы он мог быть вставлен в db. Я попробовал несколько методов, пытаясь вставить состояние [accept/reject] в db, но я не нашел успеха. я попросил бы кого-нибудь предоставить мне некоторую помощь, чтобы решить проблему. Благодарю.
<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>
Один из способов - передать идентификатор через строку запроса (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>
mysql_error($conn)
,mysql_error($conn)
не будет работать; Вы не можете смешивать разные API, поэтому используйтеmysqli_error($conn)
с добавленным «i», а затем посмотрите, что произойдет.