Я в настоящее время кодирую веб-сайт в php, к сожалению, я столкнулся с проблемой, где мне не удается заставить работать мои страницыmend.php и update.php и обновить на моей созданной странице отображения ниже код.
На странице отображения отображается таблица с описательными столбцами, если гиперссылка «изменить» выбрана, и запускает файлmend.php.
изменить
<?php
include 'connection.php';$id = $_GET ['theid'];
$query = "SELECT * FROM place WHERE placeid = '$id'";
$results = mysqli_query($connection,$query);
$row = mysqli_fetch_assoc($results);
?>
<?php include 'header.php'; ?>
<body>
<h2>Amend</h2>
<form method="post" action="updateplace.php">
<fieldset class="fieldset-width1">
<input type="hidden" name="hiddenID" value= "<?php echo $row['placeid']; ?>" />
<br />
<br />
<label class="align" for="txtplacename">Place Name: </label>
<input type="text" name="txtplacename" value = "<?php echo $row['placename']; ?>" />
<br />
<br />
<label class="align"for="txtplacedesc">Place description: </label>
<input type="text" name="txtplacedesc" value = "<?php echo $row['placedesc']; ?>" />
<br />
<br />
<label class="align"for="txtplacecat">Place category: </label>
<input type="text" name="txtplacecat" value = "<?php echo $row['placecat']; ?>" />
<br />
<br />
<label class="align" for="txtplaceimg">Place image: </label>
<input type="text" name="txtplaceimg" value = "<?php echo $row['placeimg']; ?>" />
<br />
<br />
<input type="submit" value="Submit" name='submit' />
</fieldset>
</form>
</p>
<?php include 'footer.php'; ?>
</body>
</html>
Эта страница php работает, так как отображает все данные из phpmyadmin, используя выбранный идентификатор.
Обновить
<?php
include 'connection.php';
if(isset($_POST['submit'])){
$placeid = $_POST['hiddenID'];
$placename = $_POST['txtplacename'];
$placedesc = $_POST['txtplacedesc'];
$placecat = $_POST['txtplacecat'];
$placeimg = $_POST['txtplaceimg'];
}
$query = "UPDATE place
SET placename = '$placename';
SET placedesc = '$placedesc';
SET placecat = '$placecat';
SET placeimg = '$placeimg';
WHERE
placeid = '$placeid'";
mysqli_query($connection,$query);
header("location:admin.php");
когда я выбираю кнопку отправки, заголовок перенаправляет меня, однако ни один из столбцов, которые я изменяю, не будет обновлен. Любая помощь будет оценена спасибо
Посмотри на свой UPDATE
запрос,
$query = "UPDATE place
SET placename = '$placename'; <==
SET placedesc = '$placedesc'; <==
...
Вы прекращаете свой UPDATE
операция в каждой строке, используя ;
, который нарушает ваш запрос. Кроме того, ваш UPDATE
Сам запрос неверен, он должен быть таким:
$query = "UPDATE place SET placename = '$placename', placedesc = '$placedesc', placecat = '$placecat', placeimg = '$placeimg' WHERE placeid = '$placeid'";
Примечание: Узнать о подготовленное заявление потому что сейчас ваш запрос подвержен атакам SQL-инъекций. Также вот хорошее чтение на как вы можете предотвратить внедрение SQL в PHP.
Вы не должны просто предполагать, что запрос был успешным. Замените свой mysqli_query
в соответствии с этим, чтобы выяснить, что происходит:
if (!mysqli_query($connection, $query)) {
echo("Error description: " . mysqli_error($connection));
die();
}
Если у вас есть какая-то ошибка, это предотвратит перенаправление и отображение. Если вы все еще получаете перенаправление, в самом запросе не было ничего плохого, скорее ваш $placeid
значение не существует в базе данных.