Как заставить кнопки изменять данные из базы данных - PullRequest
1 голос
/ 21 апреля 2019

У меня есть страница, которая подключается к базе данных и получает некоторые данные, включая заголовок и содержимое.
Я использую цикл while для отображения данных на этой странице, и я пытаюсь сделать так, чтобы 2 кнопки были под каждый результат, который поступает из базы данных, это кнопки «Редактировать» и «Удалить». Проблема в том, что я не знаю, как заставить кнопки удалять или редактировать правый столбец.
РЕДАКТИРОВАТЬ
Добавлена ​​часть PHP:

$sql = "SELECT * FROM posts ORDER BY date DESC, time DESC $limit";
$query = mysqli_query($conn, $sql);
<?php
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
    ?>
    <section>
        <b>Title: </b>
        <p><?php echo $row['name'] ?></p><br>
        <b>Content: </b><br>
        <p><?php echo $row['content'] ?></p><br>
//want to have two buttons here which can be used to edit or delete the colunm that they are under it
    </section>
    <?php
}

1 Ответ

0 голосов
/ 21 апреля 2019

Предполагая, что в таблице posts имеется столбец id , т. Е. С каждой строкой связано уникальное значение id, создайте блок <form>...</form>, инкапсулирующий оба Edit и Удалить кнопки, например:

$sql = "SELECT * FROM posts ORDER BY date DESC, time DESC $limit";
$query = mysqli_query($conn, $sql);
<?php
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
    ?>
    <section>
        <b>Title: </b>
        <p><?php echo $row['name'] ?></p><br />
        <b>Content: </b><br>
        <p><?php echo $row['content'] ?></p><br />
        <form action="YOURPAGE.php?id=<?php echo $row['id']; ?>" method="post">
            <input type="submit" name="edit" value="Edit" />&nbsp;
            <input type="submit" name="delete" value="Delete" />
        </form>
    </section>
    <?php
}

Таким образом, как только вы нажмете Изменить или Удалить кнопку определенной строки, форма будет отправлена, и вы сможете получить этот конкретный идентификатор строки, используя $_GET['id'] на YOURPAGE.php страница. На основании этого идентификатора строки выполните операцию редактирования или удаления соответствующим образом.

YOURPAGE.php

<?php
    /* get row id */
    $id = isset($_GET['id']) ? $_GET['id'] : null;

    if(isset($id) && isset($_POST['edit'])){
        /* Edit button has been clicked */

        /* create a prepared statement */
        $stmt = mysqli_prepare($conn, "SELECT name, content FROM posts WHERE id = ?")
        if($stmt){
            /* bind parameters */
            mysqli_stmt_bind_param($stmt, "i", $id);

            /* execute query */
            mysqli_stmt_execute($stmt);

            /* bind result variables */
            mysqli_stmt_bind_result($stmt, $name, $content);

            /* fetch value */
            mysqli_stmt_fetch($stmt);

            /* close statement */
            mysqli_stmt_close($stmt);

            ?>
            <form action="" method="post">
                <b>Title: </b><input type="text" name="title" value="<?php echo $name; ?>" /><br />
                <b>Content: </b><br />
                <textarea name="content" ><?php echo $content; ?></textarea><br />
                <input type="submit" name="editrow" value="Edit" />
            </form>
            <?php
        }else{
            /* error */
        }
    }

    if(isset($id) && isset($_POST['editrow'])){
        $title = $_POST['title'];
        $content = $_POST['content'];

        /* edit row details based on the row id i.e. $id */
    }

    if(isset($id) && isset($_POST['delete'])){
        /* Delete button has been clicked */
        /* Delete row based on the row id i.e. $id */
    }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...