Zastosowanie PHP do wyszukiwania danych w MySQL
Jeżeli nie znasz MySQL, to najpierw musisz opanować wiadomości i umiejętności zawarte w Podstawy MySQL. Podczas wykonywania ćwiczeń zwązanych z MySQL utworzyliśmy bazę ksiegarnia_internetowa
. Jeżeli nie masz tej bazy, to możesz ją szybko utworzyć korzystając z phpMyAdmin. Musisz wykonać następujące kroki:
- Utworzyć nową bazę ksiegarnia_internetowa.
-
Przy pomocy phpMyAdmin zejestrować użytkownika
admin
, hasłoadmin123
mającego status administratora. -
Utworzyć tabele bazy ksiegarnia_internetowa. W kodzie tworzącym tabelę
ksiazki
należy zmienićcena FLOAT(4,2)
nacena FLOAT(6,2)
. -
Wypełnić tabele danymi. Kod wypełniający danymi pierwszą z tabel
klienci
należy uzupełnić o rekordy wstawione w ćwiczeniu poprzednim (pamiętaj aby zamienić średnik kończący trzy doklejane rekordy na przecinek).
Tabela ksiazki
w phpMyAdmin powinna wyglądać następująco:
Każdy skrypt łączący się z bazą danych musi wykonać następujące czynności:
- Sprawdzenie poprawności danych wpisanych do formularza przez użytkownika.
- Nawiązanie połączenia z odpowiednią bazą.
- Wysłanie zapytania.
- Otrzymanie wyników zapytania.
- Zaprezentowanie użytkownikowi tych wyników.
Wymienione działania omówimy na podstawie prostego skryptu wyszukującego informacje w naszej bazie ksiegarnia_internetowa
. Nasz projekt będzie się składał z dwóch plików:
-
szukaj.php
- ma zawierać formularz umożliwiający określenie warunków wyszukiwania, -
wyniki.php
- prezentujący wyniki wyszukiwania.
Ćwiczenie 10_0_0_1. Wyszukiwanie danych w bazie MySQL
Utwórz pliki szukaj.php
oraz wyniki.php
.
Plik szukaj.php
:
<!doctype html>
<html>
<head>
<title>Wyszukiwanie książek w bazie ksiegarnia_internetowa</title>
<meta charset="utf-8" />
</head>
<body>
<h1>Wyszukiwanie książek w bazie ksiegarnia_internetowa</h1>
<form action="wyniki.php" method="post">
Wyszukaj według:
<select name="metoda">
<option value="autor" />Autora
<option value="tytul" />Tytułu
<option value="isbn" />ISBN
</select>
<br /><br />
Szukane wyrażenie:
<input type="text" name="wyrazenie" />
<input type="submit" name="wyszukaj" />
</form>
</body>
</html>
Plik wyniki.php
:
<!doctype html>
<html>
<head>
<title>Wyniki wyszukiwania książek w bazie ksiegarnia_internetowa</title>
<meta charset="utf-8" />
</head>
<body>
<h1>Wyniki wyszukiwania książek w bazie ksiegarnia_internetowa</h1>
<?php
$metoda = $_POST['metoda'];
$wyrazenie = $_POST['wyrazenie'];
$wyrazenie = trim($wyrazenie);
if (!$metoda || !$wyrazenie)
{
echo 'Brak parametrów wyszukiwania, wróć do poprzednej strony i spóbuj ponownie!';
exit;
}
if (!get_magic_quotes_gpc())
{
$metoda = addslashes($metoda);
$wyrazenie = addslashes($wyrazenie);
}
@ $db = new mysqli('localhost','admin','admin123','ksiegarnia_internetowa');
if (mysqli_connect_errno())
{
echo 'Połączenie z bazą nie powiodło się. Spóbuj ponownie';
exit;
}
$db->query('SET NAMES utf8');
$db->query('SET CHARACTER_SET utf8_unicode_ci');
$zapytanie = "select * from ksiazki where ".$metoda. " like '%".$wyrazenie."%'";
$wynik = $db->query($zapytanie);
$ile_znaleziono = $wynik->num_rows;
echo '<p> Liczba znalezionych książek: '.$ile_znaleziono.'</p>';
for ($i=0;$i<$ile_znaleziono;$i++)
{
$wiersz = $wynik->fetch_assoc();
echo '<p><b>'.($i+1).'. Tytuł: '.stripslashes($wiersz['tytul']).'</b><br />';
echo 'Autor: '.stripslashes($wiersz['autor']).'<br />';
echo 'ISBN: '.stripslashes($wiersz['isbn']).'<br />';
echo 'Cena: '.stripslashes($wiersz['cena']).'</p><br />';
}
$wynik->free();
$db->close();
?>
</body>
</html>
Formularz powinien wyglądać następująco:
Jeżeli wpiszemy za szukane wyrażenie np. Rafał, to otrzymamy następujące wyniki wyszukiwania:
Podczas kolejnych zajęć będziemy analizować ten prosty projekt.