Параметр не передается в запрос

Задача заключается в следующем, есть ссылка при нажатии на которую должно передаваться два параметра:

<?="<a href='?red={$task['task_type']}&id={$task['id']}#zatemnenie'>Редактировать</a>"?>

Мне нужно что бы по запросу обновлялись данные в БД после ввода их с формы. Я делаю вот такой запрос:

if ($_POST[red] === 'redTask'){
    $redtt = mysqli_query($link,"UPDATE `tasks` SET `obc`='{$_POST['obc']}', `sr`='{$_POST['sr']}', `osr`='{'$_POST['osr']'}' WHERE `id`={$_GET['id']}");
}

Но обновления не происходит. Когда я задаю id конкретным числом, обновления происходит при отправке формы. Если я вывожу параметр id просто в echo $_GET['id']; нужный айдишник отображается. Почему это так происходит и как это исправит ?


Ответы (2 шт):

Автор решения: Walfter

Подобным образом Вы используете GET запрос,

<a href='?red={$task['task_type']}&id={$task['id']}#zatemnenie'>Редактировать</a>

В запросе к бд id Вы правильно получили, но вот в условии вы ищите параметр из POST запроса, попробуйте поменять POST на GET:

if ($_GET['red'] === 'redTask'){
    $redtt = mysqli_query($link,"UPDATE `tasks` SET `obc`='{$_POST['obc']}', `sr`='{$_POST['sr']}', `osr`='{'$_POST['osr']'}' WHERE `id`={$_GET['id']}");
}

Я бы ещё рекомендовал использовать проверку на наличие ключа

if (isset($_GET['red']) && $_GET['red'] === 'redTask'){
    $redtt = mysqli_query($link,"UPDATE `tasks` SET `obc`='{$_POST['obc']}', `sr`='{$_POST['sr']}', `osr`='{'$_POST['osr']'}' WHERE `id`={$_GET['id']}");
}

UPDATE

Перепрочёл код... Вы ссылкой пытаетесь отправить POST запрос? Вам надо передать пост запрос через форму, или через скрипт

→ Ссылка
Автор решения: Дмитрий Белый

Сама форма`

    <input type="hidden" name="red" value="redTask">
    <p>
        <strong>
            <?= $taskTypeID['name'] ?> - <?= $taskTypeID['type'] ?>
        </strong>
        <br>
        <?php if ($taskTypeID['obc'] == 1):?>
            <label for="">Выберите obc -- </label><select name="obc" id="">
                <option value="1">Да</option>
                <option value="0">Нет</option>
            </select><br>
        <?php endif;?>

        <?php if ($taskTypeID['sr'] == 1):?>
            <label for="">Выберите sr -- </label><select name="sr" id="">
                <option value="1">Да</option>
                <option value="0">Нет</option>
            </select><br>
        <?php endif;?>

        <?php if ($taskTypeID['osr'] == 1):?>
            <label for="">Выберите osr -- </label><select name="osr" id="">
                <option value="1">Да</option>
                <option value="0">Нет</option>
            </select><br>
        <?php endif;?>
    </p>
    <button type="submit">Добавить</button>
</form>`
→ Ссылка