Обновить базу данных mysql с помощью кнопки в таблице в PHP

Здравствуйте, я пытаюсь обновить столбец в моей таблице 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");
}

Что вы пробовали это отладить? Вы уверены, что проверяете наличие $_POST при отправке запроса GET? Есть ли ошибки, выдаваемые сервером MySQL?

Nico Haase 19.08.2018 18:37

@NicoHaase где я могу проверить ошибки моего mysql? Я использую phpmyadmin

user3857974 19.08.2018 18:44

Что ж, сначала посмотрите на разницу между GET и POST. Если вы это поняли, взгляните на отладку кода - немного echo здесь и там уже достаточно, чтобы увидеть, какие части вашего кода запускаются, а какие нет. Наконец, mysqli_error может помочь, если вы полностью уверены, что запрос MySQL все-таки выполняется.

Nico Haase 19.08.2018 18:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
95
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы ожидаете 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.

Другие вопросы по теме