SQL Запрос update не работает

451
05 января 2017, 08:20

Не пойму что делаю не так, поправьте пожалуйста:

Главный файл

<? $History = mysqli_query($CONNECT, "SELECT history.id, history.text, history.status, users.name FROM history INNER JOIN users ON history.uid = users.id ORDER BY history.id"); ?>
    <tbody>
      <?php while ($Query = mysqli_fetch_assoc($History)) echo '
        <tr>
        <th scope="row">'.$Query['id'].'</th>
        <td>'.$Query['name'].'</td>
        <td>'.$Query['text'].'</td>
        <td>
          <form method="POST" action="/query">
            <select class="custom-select" size="1" name="status">
                '.str_replace('>'.services_status($Query['status']), 'selected>'.services_status($Query['status']), '
                <option value="0">Заказано</option>
                <option value="1">Активно</option>
                <option value="2">Отказано</option>
                ').'
            </select>
            <input class="btn btn-primary" type="submit" name="submit" value="Изменить">
          </form>
        </td>
        </tr>
      ';
      ?>
    </tbody>

UPTADE файл

<?
if ($_POST['submit']) {
    mysqli_query($CONNECT, "UPDATE `history` SET `status` = $_POST[status] WHERE `id` = $_POST[id]");
}?>

Если изменить код на тот что внизу, то работает, НО будет изменять ВСЕ данные таблицы.

    <?
if ($_POST['submit']) {
    mysqli_query($CONNECT, "UPDATE `history` SET `status` = $_POST[status]");
}?>
Answer 1

Так как в форме нет элемента с name="id", то в $_POST[id], по факту, нет никакого id. Чтобы он отправлялся при отправке формы, можно добавить в код формы скрытый <input> с соответствующим name:

<input type="hidden" name='id' value="' . $Query['id'] . '" />
READ ALSO
Регулярное выражение php

Регулярное выражение php

Есть функция

311
Правильный роутер

Правильный роутер

1) Как правильно перенаправить все запросы на роутер, но тем не менее исключить перенаправление для стилей, js-скриптов, картинок, музыки, видео...

306
Зачем использовать метод on() при назначении событий в джейквери?

Зачем использовать метод on() при назначении событий в джейквери?

Какие преимущества дает назначение событий через универсальный метод on() перед назначением событий, например, методами click(), hover(), keydown()?

377