Как добавить кнопку «Редактировать» и обновить базу данных onclick?

#php #html #mysql

#php #HTML #mysql

Вопрос:

У меня есть таблица, в которой отображается информация, но я хочу добавить кнопку редактирования, на которой, например, написано «Сдано», и обновлять столбец в базе данных при нажатии.

Я хочу изменить «baatinn» с 0 на 1, когда кто-то нажимает кнопку редактирования.

База данных

Во-первых, как мне добавить кнопку редактирования в строку и, во-вторых, какой запрос для обновления «baatinn», чтобы установить значение от 0 до 1

HTML:

 <tr>
   <th>Båt ut</th>
   <th>Båt inn</th>
   <th>Båtnr</th>
   <th>Fornavn</th>
   <th>Etternavn</th>
   <th>Tid</th>
   <th>Kr</th>
   <th>Edit</th>
</tr>
  

PHP:

 $sql = "SELECT utleid, inntid, baatnr, fornavn, etternavn, tid, kr, baatin FROM utleie WHERE baatnr LIKE '%$sok%' or fornavn LIKE '%$sok%' or etternavn LIKE '%$sok%' or tid LIKE '%$sok%' ORDER BY id desc";

$result = $conn-> query($sql);

if ($result-> num_rows > 0) {
    while ($row = $result-> fetch_assoc()) {
        ?>
        <tr>
            <td><?php echo $row["utleid"]; ?></td>
            <td><?php echo $row["inntid"]; ?></td>
            <td><?php echo $row["baatnr"]; ?></td>
            <td><?php echo $row["fornavn"]; ?></td>
            <td><?php echo $row["etternavn"]; ?></td>
            <td><?php echo $row["tid"]; ?></td>
            <td><?php echo $row["kr"]; ?></td>
            <td><?php echo $row["edit"]; ?></td>
        </tr>
        <?php 
    }
    echo "</table>";
} else {
    echo "0 results";
}
$conn-> close();
  

Ответ №1:

Вы могли бы изменить текст редактирования на:

 <form method="post">
  <button name="edit" value="1">Edit</button>
</form>
  

Затем в PHP добавить:

 if ($_POST['edit']) {
   $con->query("UPDATE utleie SET baatinn=1");
}
  

Ответ №2:

Как сказал @Kristopher Ives, вы можете использовать форму для отправки данных через POST запрос обратно на сервер, но если вы отправляете несколько строк таблицы в качестве данных, вам нужно убедиться, что каждая строка хранится отдельно, чтобы избежать перезаписи данных. Ваша форма могла бы выглядеть примерно так:

 <form name="edit">
    <table>
        <?php

        if ($result-> num_rows > 0) {
            while ($row = $result-> fetch_assoc()) {
                ?>
                <tr >
                    <td>
                        <input type="text" name="utleid[]" value="<?php echo $row["utleid"]; ?>">
                    </td>
                </tr>
                <?php 
            }
            echo "</table>";
        } else {
            echo "0 results";
        }

        ?>
    </table>
    <input type="submit">
</form>