Odczyt z bazy danych

Wyświetlanie danych w skrypcie realizujemy za pomocą funkcji mysql_query () oraz zapytania SQL SELECT.

Składnia polecenia mysql_query oraz zapytania  SELECT :

$query=”SELECT * FROM `klienci`”;

$result = mysql_query($query);

if (!$result) {

die(„Błedne zapytanie”);

}

$num = mysql_num_rows($result);

Zadajemy zapytanie do bazy danych „SELECT * FROM `klienci`” które wyświetla wszystkie rekordy tabeli klienci. Następnie zliczamy ilość wyświetlonych rekordów, pomoże nam to w dynamicznym wyświetleniu pozyskanych rekordów w tabeli.

Korzystając z funkcji warunkowej for możemy dynamicznie tworzyć tabelę w której wyświetlamy dane. Wraz ze wzrostem liczby klientów, będą oni automatycznie dodawani do tabeli wyników.

Składnia funkcji warunkowej for:

for ($i = 0; $i < $num; $i++) {

$f9  = mysql_result($result,$i,”id_klienta”);

$f1  = mysql_result($result,$i,”nazwisko”);

$f2  = mysql_result($result,$i,”imie”);

$f3  = mysql_result($result,$i,”pesel”);

$f4  = mysql_result($result,$i,”miasto”);

$f5  = mysql_result($result,$i,”ulica”);

$f6  = mysql_result($result,$i,”kod_pocztowy”);

$f7  = mysql_result($result,$i,”telefon”);

$f8  = mysql_result($result,$i,”Komentarz”);

Funkcja będzie pobierała wartości aż ich liczba będzie odpowiadać wartości w zmiennej $num, następnie wszystkie pobrane dane zostaną umieszczone w tabeli.

Usuwanie rekordów z bazy danych

Usuwanie rekordów z bazy danych jest realizowane przez polecenie DELETE. Zostało to zrealizowane za pomocą przycisku X, który poprzez formularz przesyła id klienta który ma być usunięty do skryptu.

Składnia formularza DELETE:

<form role=”form” action=”delete_klient.php” method=”post”>

<input type=”hidden” name=”nr_klient” value=”<?php echo $f9;  ?>”>

<button type=”submit” ><img src=”src/edit_delete.png” /></button>

</form>

Pod przyciskiem została przypisana wartość id klienta z parametrem type o wartości hidden. Polecenie to tworzy ukryte pole formularza, nie jest ono widoczne dla użytkownika.

Po stronie serwera po odebraniu identyfikatora zostaje wykonany skrypt.

Składania skryptu usuwania rekordów:

$f9  = $_POST[‚nr_klient’];

$sql=mysql_query(„DELETE FROM klienci WHERE id_klienta=’$f9′”);

if ($sql) {

echo ‚<p>Rekord został usunęty z bazy</p>’;

header(‚Refresh: 1; url= ./work-order-show.php’);

}

else {

echo mysql_error(); echo ‚<p>Błąd! Spróbuj ponownie</p>’;

}

Do zmiennej $f9 zostaje pobrany numer klienta który ma zostać usunięty. Do zapytania SQL zostaje dodany warunek odnoszący się do id usuwanego klienta (WHERE id_klienta=’$f9′). Następnie sprawdzana zostaje poprawność wykonania zapytania jeżeli zwrócona zostanie wartość TRUE, użytkownik zostanie przekierowany do widoku wszystkich klientów.

 Zmiana rekordów w bazie danych

Często zdarza się, że potrzebujemy zmienić dane w naszym systemie. Zmienił się numer telefonu klienta czy też cena samochodu. W takim przypadku musimy się posłużyć poleceniem UPDATE.

Zanim przejdziemy do aktualizowania bazy danych musimy pobrać istniejące dane które chcemy zmienić a następnie wczytać do formularza w którym dokonamy edycji. Przy pomocy zapytania SELECT wybieramy wszystkie rekordy z id klienta którego będziemy edytować.

Składnia polecenia SELECT:

SELECT * FROM  `klienci` WHERE id_klienta = ‚$f9’

Wynik zapytania zapisujemy do zmiennej $r w tablicy przy użyciu funkcji mysql_fetch_assoc.

$r = mysql_fetch_assoc($result);

Tak przygotowane dane muszą zostać umieszczone w formularzu. Jako, że formularz jest składnią języka HTML a potrzebujemy używać funkcji języka PHP, musimy wydrukować formularz za pomocą polecenia echo. Tak przygotowany formularz umożliwi nam korzystanie z funkcji PHP.

Formularz zmiany danych:

echo ‚<form action=”up_klient.php” method=”post”>

<input type=”hidden” name=”id_klienta” value=”‚.$f9.'” />

<label> Imię</label><br />

<input type=”text” name=”imie” value=”‚.$r[‚imie’].'” /><br />

<label> Nazwisko</label><br />

<input type=”text” name=”nazwisko”           value=”‚.$r[‚nazwisko’].'” /><br />

<label> Pesel</label><br />

<input type=”text” name=”pesel” value=”‚.$r[‚pesel’].'” /><br />

<label> Miasto</label><br />

<input type=”text” name=”miasto” value=”‚.$r[‚miasto’].'” /><br />

<label> Ulica</label><br />

<input type=”text” name=”ulica” value=”‚.$r[‚ulica’].'” /><br />

<label> Kod pocztowy</label><br />

<input type=”text” name=”kod_pocztowy” value=”‚.$r[‚kod_pocztowy’].'” /><br />

<label> Telefon</label><br />

<input type=”text” name=”telefon” value=”‚.$r[‚telefon’].'” /><br />

<label> Komentarz</label><br />

<input type=”text” name=”komentarz” value=”‚.$r[‚komentarz’].'” /><br />

<input type=”submit” value=”Popraw” />

</form>’;

W tak przygotowanym formularzu dane pobrane z bazy danych zostaną wczytane do pól tekstowych i będą gotowe do edycji. Dane mogą być dowolnie edytowane przez użytkownika, lecz id klienta nie zostało udostępnione do edycji ponieważ jest to wartość generowana automatycznie przy dodawaniu klienta do bazy. Pozostawienie tego pola do edycji w późniejszym czasie mogło by powodować nieporządek w bazie danych oraz pozostawianie nie używanych identyfikatorów czy też użytkownik miał by problem ze znalezieniem wolnego identyfikatora. Po zmianie interesujących nas danych przekazywane są one dalej do skryptu który uaktualni naszą bazę danych.

Skrypt aktualizujący bazę danych:

$var1  = $_POST[‚id_klienta’];

$var2  = $_POST[‚nazwisko’];

$var3  = $_POST[‚imie’];

$var4  = $_POST[‚pesel’];

$var5  = $_POST[‚miasto’];

$var6  = $_POST[‚ulica’];

$var7  = $_POST[‚kod_pocztowy’];

$var8  = $_POST[‚telefon’];

$var9  = $_POST[‚komentarz’];

$sql=mysql_query(„UPDATE klienci SET`nazwisko`=’$var2′, `imie`=’$var3′, `pesel`=’$var4′, `miasto`=’$var5′, `ulica`=’$var6′, `kod_pocztowy`=’$var7′, `telefon`=’$var8′, `komentarz`=’$var9′ WHERE id_klienta=’$var1′”);

Przesłane dane z formularza są pobierane za pomocą metody POST, zapisywane do zmiennej a następnie wstawiane do polecenia SQL UPDATE. Polecenie to zmienia dotychczasowe wartości określonych kolumn danej tabeli na nowe, podane wartości. Na koniec sprawdzamy poprawności zapisu do bazy danych.

Dodaj komentarz