Кнопка, выполняющая изменения в записи в базе данных (HTML ТАБЛИЦА)

Я создаю веб-приложение инвентаризации для своей школьной библиотеки. Все страницы построены на HTML, а PHP взаимодействует с базой данных MySQL.

Одна из страниц приложения позволяет выполнять поиск по названию книги в базе данных и возвращает результат в одной таблице (или нескольких таблицах, если результатов несколько).

Я хочу добавить кнопку внутри ячейки таблицы, которая при нажатии выполняет изменение параметра записи. Точнее, заголовок одного из столбцов называется «доступность». Если ответ «у», то книга доступна. Когда пользователь продает книгу, нажимает кнопку «Продать» справа, что изменяет параметр на «n».

Смотрите скриншот: https://drive.google.com/file/d/15y4w6UZpWVIVZjsQN6H3fsmTQeTdFDmP/view?usp=sharing

Как я могу это сделать?

Это код таблицы:

    echo '<table style = "width:100%" border = "1">';
    echo '<tr>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>Author:</p></center></font><th>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>Title:</p></center></font><th>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>ISBN:</p></center></font><th>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>Cover Price:</p></center></font><th>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>40% Price:</p></center></font><th>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>Availability:</p></center></font><th>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>Returned:</p></center></font><th>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>Phone:</p></center></font><th>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>First Name:</p></center></font><th>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>Last Name:</p></center></font><th>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>Class:</p></center></font><th>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>Student ID:</p></center></font><th>';
    echo '<th><font color = "navy" face = "Helvetica" size = "3"><center><p>Sell:</p></center></font><th>';

    echo '</tr>';
    echo '<tr>';
    echo '<th><font color = "black" face = "Helvetica" size = "2"><center>'.$results['author'].'</center></font><th>';
    echo '<th><font color = "black" face = "Helvetica" size = "2"><center>'.$results['title'].'</center></font><th>';
    echo '<th><font color = "black" face = "Helvetica" size = "2"><center>'.$results['isbn'].'</center></font><th>';
    echo '<th><font color = "black" face = "Helvetica" size = "2"><center>'.$results['coverprice'].'</center></font><th>';
    echo '<th><font color = "black" face = "Helvetica" size = "2"><center>'.$results['fortyprice'].'</center></font><th>';
    echo '<th><font color = "black" face = "Helvetica" size = "2"><center>'.$results['availability'].'</center></font><th>';
    echo '<th><font color = "black" face = "Helvetica" size = "2"><center>'.$results['returned'].'</center></font><th>';
    echo '<th><font color = "black" face = "Helvetica" size = "2"><center>'.$results['phone'].'</center></font><th>';
    echo '<th><font color = "black" face = "Helvetica" size = "2"><center>'.$results['firstname'].'</center></font><th>';
    echo '<th><font color = "black" face = "Helvetica" size = "2"><center>'.$results['lastname'].'</center></font><th>';
    echo '<th><font color = "black" face = "Helvetica" size = "2"><center>'.$results['class'].'</center></font><th>';
    echo '<th><font color = "black" face = "Helvetica" size = "2"><center>'.$results['studentid'].'</center></font><th>';
            echo '<th><form action = "BOOKS_changestatus.php" method = "GET"><input type = "submit" value = "Sell"></th>';





    echo '</tr>';
    echo '<br>';



                }

Файл changestatus.php все еще пуст, хотя ...

Вы не закрыли тег form

Zain Farooq 29.08.2018 11:30

Спасибо, что заметили это. Исправлено в моем коде. Однако вы можете помочь мне разобраться?

Tommaso Pirola 29.08.2018 11:33

Извините, я не понял, что придумать

Zain Farooq 29.08.2018 11:34

Опять же: закройте <form>, удалите <br>, добавьте </table>.

brombeer 29.08.2018 11:34

Для чего нужен changestatus.php

Zain Farooq 29.08.2018 11:34

Измените данные «доступности» этой строки с «y» на «n» в базе данных.

Tommaso Pirola 29.08.2018 11:42
Стоит ли изучать 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 и хотите разрабатывать...
2
6
36
1

Ответы 1

Вы сделали здесь небольшую ошибку. Вы должны поместить скрытое поле в свою форму и отправить его на страницу php, где вы хотите обновить его в своей базе данных. Переставьте это

echo '<th><form action = "BOOKS_changestatus.php" method = "GET"><input type = "submit" value = "Sell"></th>';

с этим

echo '<th><form action = "changestatus.php" method = "GET">// I assumed that changestatus.php is your php page where you want to do database work
     <input type = "hidden" name = "id" value = "' .$results['studentid'] . '"> //I assume that this is your id in your database
     <input type = "submit" name = "submit" value = "Sell"></form></th>';

Сейчас на странице changestatus.php

if (isset($_GET['submit']))
 {
   $id = $_GET['studentid'];

   //Now you have id and it will be easy for you now to update record in your database against this id

 }

Примечание: Я сделал некоторые предположения относительно вашего кода. Вы можете поправить меня, если что-то не так

Я исправил выравнивание таблицы. Что мне нужно добавить на странице изменения статуса? Кнопка «Продать» должна изменить параметр «доступность» в базе данных с «y» на «n».

Tommaso Pirola 03.09.2018 19:00

Привет, вы сделали форму, как в моем ответе?

Zain Farooq 03.09.2018 19:02

Собственно, я решил использовать ссылку вместо кнопки, как вы можете видеть на этом скриншоте. drive.google.com/file/d/1Z54C-DAjg72HnehLbthaL46ryLNNI7SC/… Ссылка перенаправляет на changestatus.php, который должен выполнить изменение

Tommaso Pirola 03.09.2018 19:08

Вы можете рассматривать кнопку отправки формы как обычную кнопку со скрытым полем studentid, а затем в changestatus.php вы можете получить studentid по запросу $_GET.

Zain Farooq 03.09.2018 19:15

Я обновил ответ, чтобы вам было легче понять, а также еще раз проверьте файл changestatus.php

Zain Farooq 03.09.2018 19:18

Простите, я не понимаю, что вы имеете в виду. Почему я должен использовать скрытое поле? Как видите, «Продать» - это просто ссылка на changestatus.php. У меня есть первичный ключ, который автоматически увеличивается для каждой новой записи в базе данных.

Tommaso Pirola 03.09.2018 19:25

Хорошо, давайте сначала проясним. Как вы узнаете, какую запись вам нужно обновить?

Zain Farooq 03.09.2018 19:29

Это основная проблема. У меня есть уникальный идентификатор для каждой записи в базе данных ..

Tommaso Pirola 03.09.2018 19:42

Вот что я говорю. Вы должны вставить id каждой записи в скрытое поле и отправить его на страницу changestatus.php через запрос $_GET.

Zain Farooq 03.09.2018 19:57

Ой, верно! Теперь я понимаю! Однако я вижу, что вы использовали ввод кнопки. Что, если бы я решил использовать метод ссылки <a href = "myurl.com/BOOKS_changestatus.php?"> Продать</a>

Tommaso Pirola 03.09.2018 20:37

Да, вы также можете сделать это таким же образом <a href = "myurl.com/BOOKS_changestatus.php?studentid=$results['s‌​tudentid']">Sell</a>‌​;

Zain Farooq 04.09.2018 06:19

А в changestatus.php поменяйте if (isset($_GET[submit''])) на if (isset($_GET[studentid'']))

Zain Farooq 04.09.2018 06:20

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