Здравствуйте, я пытаюсь обновить столбец в моей таблице mysql, но не могу заставить его работать.
Когда я пытаюсь нажать «Подтвердить», это ничего не меняет.
orders.php
<?php while ($row = mysqli_fetch_array($results)) { ?>
<tr>
<td><?php echo $row['fullname']; ?></td>
<td><?php echo $row['address']; ?></td>
<td><?php echo $row['mobile']; ?></td>
<td><?php echo $row['order_item']; ?></td>
<td><?php echo $row['quantity']; ?></td>
<td><?php echo $row['total_amount']; ?></td>
<td><?php echo $row['payment']; ?></td>
<td><?php echo $row['status']; ?></td>
<td>
<a href = "vieworders.php?pending=<?php echo $row['id']; ?>" class = "edit_btn" onclick = "return confirm('Update status?');">Pending</a>
</td>
<td>
<a href = "vieworders.php?confirm=<?php echo $row['id']; ?>" class = "del_btn" onclick = "return confirm('Update status?');">Confirm</a>
</td>
</tr>
<?php } ?>
admin.php
if (isset($_POST['pending'])) {
$pending = "Pending";
$id = $_POST['id'];
mysqli_query($db, "UPDATE order_information SET status='$pending' WHERE id=$id");
array_push($success, "Update SUCCESS");
}
if (isset($_POST['confirm'])) {
$confirm = "Confirm";
$id = $_POST['id'];
mysqli_query($db, "UPDATE order_information SET status='$confirm' WHERE id=$id");
array_push($success, "Update SUCCESS");
}
Возможный дубликат Когда мне следует использовать метод GET или POST? В чем разница между ними?
@NicoHaase где я могу проверить ошибки моего mysql? Я использую phpmyadmin
Что ж, сначала посмотрите на разницу между GET и POST. Если вы это поняли, взгляните на отладку кода - немного echo здесь и там уже достаточно, чтобы увидеть, какие части вашего кода запускаются, а какие нет. Наконец, mysqli_error может помочь, если вы полностью уверены, что запрос MySQL все-таки выполняется.






Вы ожидаете http-сообщение в вашем скрипте, пока вы делаете запрос Get, щелкнув ссылку.
Попробуйте вместо этого
if (isset($_REQUEST['pending'])) {
$pending = "Pending";
$id = mysqli_real_escape_string($db,$_REQUEST['id']);
mysqli_query($db, "UPDATE order_information SET status='$pending' WHERE id=$id");
array_push($success, "Update SUCCESS");
}
if (isset($_REQUEST['confirm'])) {
$confirm = "Confirm";
$id = mysqli_real_escape_string($db,$_REQUEST['id']);
mysqli_query($db, "UPDATE order_information SET status='$confirm' WHERE id=$id");
array_push($success, "Update SUCCESS");
}
Заметьте, я избежал ваших вводных ... Это хорошая привычка, которая может спасти вас от пети-хакеров, пробующих SQL-инъекции.
Я надеюсь, это поможет вам. Не обращайте внимания на мою ржавую машинку. Все еще не пользуетесь мобильным приложением
Ваш href идет на vieworders.php, который является $ _GET, как вы связали admin.php. в vieworders.php ваш идентификатор будет в $ _GET.
Что вы пробовали это отладить? Вы уверены, что проверяете наличие
$_POSTпри отправке запросаGET? Есть ли ошибки, выдаваемые сервером MySQL?