Я пытаюсь создать простую страницу продукта (без входа или чего-либо подобного) в php и mysql. До сих пор все отображалось на моей странице продуктов в порядке, я могу удалить/добавить просто отлично с моей страницы администратора. Оттуда я пытаюсь понять, как создать функцию редактирования. Итак, я сделал форму, которая заполняет таблицу mysql на основе productid для удобства (edit2.php? Id = X), которая затем отправляет в edit.php и, надеюсь, обновляет базу данных. Пока что повторное использование старого кода не работает, я как-то надеялся, что все будет так просто.PHP mySQL Update page
Это мой дополнительный продукт (который работает):
<?php
session_start();
if(isset($_POST) && isset($_POST['hp']) && empty($_POST['hp'])) {
if(
isset($_SESSION['token']) &&
$_SESSION['token'] == $_POST['token']
) {
mysql_connect('localhost', 'test_admin', 'test');
mysql_select_db('test_product');
$data = array_map('mysql_real_escape_string', $_POST);
$query = "
INSERT INTO products (
product_name, price, description, image
) VALUES (
'{$data['product_name']}',
'{$data['price']}',
'{$data['description']}',
'{$data['image']}'
)
";
if(mysql_query($query)) {
echo '<p>Your information was successfully saved.</p>';
unset($_SESSION['token']);
} else {
echo '<p>There was an error storing your data, please try again later.</p>';
}
} else {
echo '<p>Your data has already been saved.</p>';
}
} else {
echo '<p>Error.<br />Please try again later.</p>';
}
?>
Это мое обновление (который просто выкидывает ошибку синтаксиса или «Ошибка при хранении данных»:
<?php
mysql_connect('localhost', 'test_admin', 'test');
mysql_select_db('lbriedis_product');
$data = array_map('mysql_real_escape_string', $_POST);
$query = "UPDATE products WHERE id = ".$pageid." (
product_name, price, description, image
) VALUES (
'{$data['product_name']}',
'{$data['price']}',
'{$data['description']}',
'{$data['image']}'
)
";
if(mysql_query($query)) {
echo '<p>Your information was successfully saved.</p>';
unset($_SESSION['token']);
} else {
echo '<p>There was an error storing your data, please try again later.</p>';
echo mysql_error(); //Used for development and testing only
}
?>
я получаю когда я пытаюсь использовать проверку сеанса, вероятно, потому, что я запускаю сеанс на моей странице администратора (добавить форму продукта на admin.php, редактировать и удалять ссылки) Тем не менее, я удалил сеансы проверки на данный момент, m больше борется с частью обновления.
Также я не уверен в том, что вы можете передать $ pageid запрос на обновление для 'update где id = $ pageid. У меня есть скрытое поле со значением (см. Форму редактирования), как я могу это сделать правильно?
Изменить форму (значения отображаются корректно, так где ID = $ PageId работает здесь:
<?php
$dol = "$";
$pageid = (int)$_GET['id'];
mysql_connect('localhost', 'lbriedis_admin', 'xxxxxx123');
mysql_select_db('lbriedis_product');
$result = mysql_query("SELECT * FROM products WHERE id = ".$pageid."");
if($result){
$data = mysql_fetch_assoc($result);
}
?>
<form id="inputForm" method="post" action="edit.php">
<fieldset>
<label>Pool name:</label>
<?php
echo '<input type="text" name="product_name" value="'.$data['pool_name'].'" />';
?>
<label>Price:</label> <br>
<?php
echo '$ <input type="text" name="price" value="'.$data['price'].'" />';
?> <br />
<label>Description:</label>
<?php
echo '<textarea name="description">'.$data['description'].'</textarea>';
?>
<label>Image:</label></label>
<?php
echo '<input type="text" name="image" value="'.$data['image'].'" />';
?>
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>" />
<input type="text" id="hp" name="hp" />
<?php
echo '$ <input type="hidden" name="$pageid" value="'.$pageid.'" />';
?>
<br>
<input type="submit" name="submit" value="Update" />
</fieldset>
</form>
Что не так с переменной интерполяцией? – Barmar
Где вы получаете $ pageid? – Fabio
Вы меня спрашиваете? Это в оригинальном скрипте '$ pageid = (int) $ _ GET ['id']; ' – Barmar