Как исправить ошибку при подключении к базе данных - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть html-форма и соединение с базой данных, и когда я нажимаю кнопку «Отправить», информация отправляется в мою базу данных. Но если я обновлю свою страницу после, не нажимая ни на какую кнопку, информация будет идти снова и снова и снова. Пожалуйста, помогите мне исправить это. Я также был бы признателен за помощь php формы CRUD, из пользовательского интерфейса. Можете ли вы помочь мне с кодом, скажем, есть кнопки, которые показывают мои таблицы базы данных, где я могу вносить изменения из пользовательского интерфейса.

    <!DOCTYPE html>
    <html lang="en" dir="ltr">
      <head>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
        <meta charset="utf-8">
        <title></title>
      </head>
      <body>
        <form  action="form.php" method="post">
          <table>
            <tr>
              <td>Name:</td>
              <td>
               <input type="text" name="name" placeholder="name" required> <br>
              </td>
            </tr>
            <tr>
              <td>
             Surname:
              </td>
              <td>
              <input type="text" name="surname" placeholder="surname" required>
              </td>
            </tr>
          </table>
          <input type="submit" name="submit">
        </form>
    </form>
      </body>
    </html>

form.php

    <?php
    //Create connection
    $servername='localhost';
    $username = 'root';
    $password  = '';
    $dbname='testdb';
    //create connection
    $conn = new mysqli($servername,$username,$password,$dbname);
    if($conn->connect_error){
      echo $conn->connect_error;
    }else {
      echo "connected successfully<br/>";
    }
    //post method
    if(isset($_POST['submit'])){
      $name = $_POST['name'];
      $surname = $_POST['surname'];
    }
    #insert data
     $result = "INSERT INTO users(name,surname) VALUES('$name','$surname')";
     $show = "SELECT * FROM users";
     if($conn->query($result)){
       echo "data inserted successfully";
     }else {
       $conn->connect_error;
     }
    $conn->close();
    ?>

1 Ответ

0 голосов
/ 26 апреля 2019

Существует несколько решений вашей проблемы.

  1. Подход PHP: перенаправление после успешного хранения в вашей базе данных.Вы можете использовать функцию заголовка PHP для перенаправления на другую страницу с сообщением об успешном завершении.

  2. Подход JavaScript: этот подход немного более громоздкий, так как требует, чтобы данные передавались с использованиемасинхронный запрос с JavaScript.После успешного ответа вашего скрипта вы можете скрыть форму с помощью JavaScript и отобразить сообщение об успешном выполнении для пользователя.

Справка для вашей системы CRUD

Поскольку вы не придумали свой собственный подход, вы не можете ожидать, что вы получите именно ту помощь, которая вам здесь нужна.Существует множество примеров того, как вы можете создать систему CRUD.

Вот базовый подход CRUD.

class Person
{
    public function create($name, $surname) : int
    {
        // insert data into database and return the auto_increament value
        return $id;
    }

    public function read(int $id) : array
    {
        // read out the data by the given id and return the data
        return $data;
    }

    public function update($id, $data) : bool
    {
        // update the database entry with the given id and the given data and return the response of the update statement (true or false)
        return $result;
    }

    public function delete($id) : bool
    {
        // delete the database entry with the given id and return the response
        return $result;
    }
}

Вот как вы должны начать.Тогда вам придется иметь дело с данными, которые вам нужны.Для чтения конкретного человека вам нужен идентификатор.Для обновления конкретного человека вам нужен идентификатор.То же самое для удаления конкретного человека.Подумайте, как получить удостоверение личности.Это можно решить с помощью скрытого элемента ввода в форме или параметра GET в URL-адресе формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...