@Kirr07

Как отправить данные в таблицу?

Ничего не отправляет. В чём ошибка?
contacts.php
<h3>Обратная связь</h3>
        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
            <div>
                <span>Имя</span> <br><input type="text" name="name">
                <br><br><span>Номер</span> <br><input type="number" name="tel">
                <br><br><span>E-mail</span> <br><input type="email" name="email">
                <br><br><span>Услуги</span><br> 
                
                <?php
                error_reporting(E_ALL);
                    // читаем категории товаров из базы данных 
                    $stmt = $category->read();
                    
                    // помещаем их в выпадающий список 
                    echo "<select class='form-control' name='service'>";
                        echo "<option>Выбрать категорию...</option>";
                    
                        while ($row_category = $stmt->fetch(PDO::FETCH_ASSOC)) {
                            extract($row_category);
                            echo "<option value='{$id_category}'>{$name}</option>";
                        }
                    
                    echo "</select>";
                    ?>
   
               <br> <br><span class="com" >Комментарий</span> <br>
               <input type="text" name="message">
               <button type="submit" >Создать</button>
            </div>
        </form>
        <?php
error_reporting(E_ALL);
    if($_POST){
        $ab->name=$_POST['name'];
        $ab->tel=$_POST['tel'];
        $ab->email=$_POST['email'];
        $ab->service=$_POST['service'];
        $ab->message=$_POST['message'];

    if($ab->create()){
        echo "<div class='alert alert-success'>Отправлено</div>";
    }
    else {
        echo "<div class='alert alert-danger'>Невозможно отправить</div>";
    }
    }
?>

function.php
private $conn;
    private $table_name0 = "users";

    // свойства объекта 
    public $id_users;
    public $name;
    public $tel;
    public $email;
    public $service;
    public $adres;
    public $time_work;
    public $message;
    function create() {
        error_reporting(E_ALL);
        // запрос для вставки записей в таблицу БД «users» 
        $query = "INSERT INTO
                    ".$this->table_name0."
                SET
                    name=:name, tel=:tel, email=:email, service=:service, message=:message  ";

        $stmt = $this->conn->prepare($query);

        // опубликованные значения 
        $this->name=htmlspecialchars(strip_tags($this->name));
        $this->tel=htmlspecialchars(strip_tags($this->tel));
        $this->email=htmlspecialchars(strip_tags($this->email));
        $this->service=htmlspecialchars(strip_tags($this->service));
        $this->message=htmlspecialchars(strip_tags($this->message));

        // привязываем значения 
        $stmt->bindParam(":name", $this->name);
        $stmt->bindParam(":tel", $this->tel);
        $stmt->bindParam(":email", $this->email);
        $stmt->bindParam(":service", $this->service);
        $stmt->bindParam(":message", $this->message);

        if ($stmt->execute()) {
            return true;
        } else {
            return false;
        }
// данный метод используется в раскрывающемся списке 
        function read() {
    
            // запрос : выбираем столбцы в таблице  
            $query = "SELECT
                        id_category, name
                    FROM
                        " . $this->table_name . "
                    ORDER BY
                        name";
    
            $stmt = $this->conn->prepare($query);
            $stmt->execute();
    
            return $stmt;
        }

Таблица users
607943e1c3291488173266.png
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Чтобы увидеть ошибку в этом хаосе:
if ($stmt->execute()) {
    return true;
} else {
    throw new Exception($stmt->error);
    //return false;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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