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 „<?php ?>” 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 <br/>”;     }     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’].” <br/>”;         }     } 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

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *