Параметр не передается в запрос
Задача заключается в следующем, есть ссылка при нажатии на которую должно передаваться два параметра:
<?="<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 шт):
Подобным образом Вы используете 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>`