Получить идентификатор из вставленной строки, чтобы таблица могла обновляться с новым значением - PullRequest
0 голосов
/ 16 февраля 2019

Просто пробую разные вещи и сталкиваюсь с этой проблемой.Я выводю несколько разных табличных значений на пример сайта, затем из выпадающего меню я хочу изменить данные, скажем, с 1 на 2. Я просто использую действие формы для публикации, , нопроблема в том, как мне получить идентификатор этой точной строки в раскрывающемся меню, когда я получил 10 различных строк, которые были выданы? Атм. Я только меняю все значения строк с 1 на 2, когда использую этот код:

PHP

if (isset($_POST['insert2']))
{
    $status2 = $_POST['status2'];

    $sql2 = ("UPDATE test3 SET status='$status2' WHERE id=id");

    if (mysqli_query($conn, $sql2)) {
    header("Location: index.php");
    exit;
} else {
    echo "Error: " . $sql2 . "<br>" . mysqli_error($conn);
}}

HTML с эхом

<?php while($row = mysqli_fetch_assoc($result)) { echo 
'<div class="box">
    <div class="box-id">
        <p class="box-id-text">Bonus id: ' . $row ['id'] . '</p>
    </div>
    <div class="box-date">
        <p class="box-date-text">Date laget: ' . $row ['date'] . '</p>
    </div>
    <div class="box-status">
        <div class="box-endre-status">
            <p class="box-status-text">Status: Pending,</p>
            <form action="" method="post">
                <select name="status2" class="endre-status">
                    <option value="" disabled selected>Endre status</option>
                    <option value="1">1</option>
                    <option value="2">2</option>
                </select>
                <input type="submit" name="insert2" value="Oppdater">
            </form>
        </div>
    </div>
</div>';}?>

Очень плохо знаком с этим и был бы очень признателен, если кто-томожет помочь мне в правильном направлении.

1 Ответ

0 голосов
/ 16 февраля 2019

Ваша проблема в том, что вы не передаете значение id для обновления с помощью вашей формы.Вы можете решить это, добавив скрытый ввод в вашу форму;добавьте что-то подобное в ваш эхо после <form action="" method="post">:

<input type="hidden" name="id" value="' . $row['id'] . '">

Затем в своем PHP добавьте

$id = $_POST['id'];

после $status2 = $_POST['status2']; и измените запрос UPDATE на

$sql2 = ("UPDATE test3 SET status='$status2' WHERE id=$id");

Если id - строка, вам необходимо заключить ее в кавычки в строке выше.

Ваша следующая проблема будет в том, что вы уязвимы для внедрения SQL.Чтобы избежать этого, вам нужно будет использовать подготовленные заявления. Этот вопрос имеет действительно хорошее объяснение того, как это сделать, и вы также можете посмотреть страницу руководства PHP для подготовленных MySQLi операторов здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...