@moneymakerXA

В чем ошибка в php скрипте редактирования данных в бд?

Нужно сделать редактирование строки базы данных для сайта. Чтобы пользователь, на данный момент любой (пока что учусь) мог зайти на сайт и отредактировать выбранную им строку. Результат выдает true, изменений никаких в таблице не происходит. Склоняюсь к тому, что проблема в том, что не указан id.

P.s БД books;
P.P.s Название таблицы orders;

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
require_once 'connect.php'; // подключаем скрипт
// подключаемся к серверу
$link = mysqli_connect($host, $user, $password, $database) 
        or die("Ошибка " . mysqli_error($link)); 
     
    if ($link) {
        echo "yes";
    } else {
        echo "no";
    }
     
// если запрос POST 
if(isset($_POST['name']) && isset($_POST['phone']) && isset($_POST['id'])){
 
    $id = htmlentities(mysqli_real_escape_string($link, $_POST['id']));
    $name = htmlentities(mysqli_real_escape_string($link, $_POST['name']));
    $phone = htmlentities(mysqli_real_escape_string($link, $_POST['phone']));
     
    $query ="UPDATE orders SET name='$name', phone='$phone' WHERE id='$id'";
    $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link)); 
 
    if($result)
        echo "Данные обновлены"; 
}
         
// закрываем подключение
mysqli_close($link);
?>

        <h2>Изменить номер телефона</h2>
            <form method='POST'>
            <input type='hidden' name='id' value='$id' />
            <p>Введите Имя:<br> 
            <input type='text' name='name' value='$name' /></p>
            <p>Введите номер: <br> 
            <input type='text' name='phone' value='$phone' /></p>
            <input type='submit' value='Сохранить'>
            </form>    

</body>
</html>
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
// если запрос POST
if(isset($_POST['name']) && isset($_POST['phone']) && isset($_POST['id'])){
это нифига не гарантирует что запрос пост
$query ="UPDATE `orders` SET `name`='$name', `phone`='$phone' WHERE `id`='$id'";
var_dump($query);

и пробуйте его через консоль/майадмин запустить, скорее всего "что то пошло не так" при передаче переменных.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы