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

443
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

Есть функция

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

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

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

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

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

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

369