Połączenie formularza z bazą danych

Na większości stron jest panel logowania, formularz kontaktowy lub formularz składania zamówień które korzystają z PHP którym łączymy się z bazą danych oraz używamy poleceń tych samych co w MySQL poprzez funkcje znajdujące się już w PHP.
Aby zacząć tworzenie formularza trzeba stworzyć bazę danych (dla przykładu baza nazywa się “test”) oraz tabelę “test”: tabelaPole ID nie będzie brane pod uwagę w kodzie strony więc zostało dodane “AUTO_INCREMENT” czyli pole ID przy każdym wprowadzeniu nowego imienia i nazwisko dostanie unikatowy numer ID oraz posiada klucz podstawowy a pola Imię i Nazwisko posiadają typ o zmiennej długości. Gdy mamy już bazę danych na której będziemy pracować możemy zacząć pisać formularz. W formularzu znajdują się pola Imię i Nazwisko z typem “text” i przycisk do wysłania formularza. W znaczniku “form” znajduje się podpięta akcja do pliku “dane.php”. formularz

Po stworzeniu formularza tworzymy drugi plik z rozszerzeniem .php i tam zaczniemy pisać kod na stronę.

Zaczynamy pisanie skryptu w znacznikach “” gdzie najpierw będziemy pobierać zmienne z formularza:

$imie = $_POST[‘imie’]; $nazwisko = $_POST[‘nazwisko’];

Następnie po pobraniu zmiennych zaczynami pisać instrukcję warunkową w której po wpisaniu zmiennych wykona się:

  • Połączenie do serwera MySQL oraz wybranie bazy danych,
  • Dodanie rekordów do bazy danych i wyświetlenie komunikatu czy został dodany rekord do tabeli.

Początek instrukcji warunkowej:

if($imie and $nazwisko){

Warunek instrukcji zostanie wykonany dopiero po wpisaniu wartości do pól. W pierwszej kolejności musi znaleźć się funkcja związana z połączeniem się do bazy danych by skrypt zadziałał :

$connect = new mysqli(‘localhost’,’root’,’root’, ‘test’) or die(‘Brak połączenia z serwerem MySQL’);

Krótkie wyjaśnienie co znajduje się w linijce wyżej. Zmienna nazywa się connect umieszczamy (jeżeli pracujemy na serwerze MySQL za pomocą XAMPP’a) new mysqli , czyli funkcja odpowiadająca za połączenie do bazy danych. W nawiasie trzeba podać :

  1. Ip_serwera MySQL,
  2. Nazwę Użytkownika,
  3. Hasło,
  4. (Nie wymagane w czystym MySQL)Nazwa bazy danych.

Po nawiasie jest funkcja z wyświetleniem błędu związanego z brakiem możliwości połączenia się z serwerem.

Następnym krokiem jest polecenie MySQL związane z dodaniem wartości zmiennych i wywołaniem na serwerze:

    $dod = “INSERT INTO test SET imie=’$imie’, nazwisko=’$nazwisko’;”;     $ins = @mysqli_query($connect,$dod);

Pierwsza zmienna odpowiada za zapytanie w MySQL w którym zamiast użycia VALUES w zapytaniu INSERT INTO użyte jest SET ,gdyż chcemy sprecyzować do jakich kolumn zostaną dodane wartości. Druga zmienna odpowiada za wywołanie zmiennej “$dod” za pomocą funkcji mysqli_query oraz przed którą znajduje się znak “@” odpowiadający za brak wyświetlania błędów lub wypisywania linijek jak działa zapytanie. W nawiasie znajduje się najpierw połączenie do bazy za pomocą zmiennej i po przecinku zmienna z poleceniem. Następna instrukcja warunkowa tylko teraz o błędzie lub wykonaniu polecenia :

    if($ins){     echo “Rekord został dodany poprawnie “;     }     else {     echo “Błąd nie udało się dodać nowego rekordu”;     };

Na tym etapie to już by wystarczyło by ale chcemy też by wyświetliło wszystkie rekordy które zostały wprowadzone więc tak samo jak z wysyłaniem zapytań do bazy przy pomocy INSERT INTO użyjemy SELECT :

    $zap = “SELECT * FROM test;”;     $wys = @mysqli_query($connect,$zap);

Gdy mamy już zapytanie gotowe teraz musimy wyświetlić wynik zapytania na stronie przy pomocy funkcji mysqli_num_rows i mysqli_fetch_assoc :

    if(mysqli_num_rows($wys) > 0){         while($row = mysqli_fetch_assoc($wys)){    echo “Id: “.$row[‘id’].” Imię: “.$row[‘imie’].” Nazwisko: “.$row[‘nazwisko’].” “;         }     } else {         echo “Brak wyników”;     };

Funkcja mysqli_num_rows zwraca liczbę wierszy w wyniku zapytania a funkcja mysqli_fetch_assoc zapisuje wszystko w tabeli asocjacyjnej.  Instrukcja wywoła się gdy ilość wyników będzie więcej niż zero, wtedy w pętli while będą wyświetlać się wszystkie rekord które zostaną przedstawione w funkcji echo w osobnej lini i według schematu.

Teraz gdy mamy już wszystko możemy zakończyć skrypt przy pomocy funkcji:

mysqli_close($connect);

która rozłącza nas z bazą danych. Przykład działania skryptu i wygląd całego kodu PHP :

kodwyswietleniebaza

Dodaj komentarz