nauka programowania

Kurs php – Jak wczytać dane z bazy danych

W dzisiejszej lekcji kursu php, będziemy wczytywać informacje z bazy danych. Jest to dość ważny aspekt działania każdego, szanującego się serwisu internetowego. Chcę abyś zrozumiał, jak to działa, a nie tylko bezmyślnie klepał kod 🙂

Dobrze abyś przed tą lekcją, zapoznał się z czterema pierwszymi lekcjami programowania obiektowegoBędziemy go używać, gdyż obecne aplikacje, pisze się obiektowo. Programowanie strukturalne niech zostanie tam gdzie jego miejsce, czyli na lekcjach w technikum.

Zacznij od utworzenia w phpmyadmin bazy danych o nazwie blog. Wejdź do bazy danych i do zakładki sql przekopiuj kod, który utworzy potrzebną nam dzisiaj tabelę z postami. Kliknij przycisk wykonaj. Właśnie według kod sql, została utworzona tabela „posts”!

CREATE TABLE IF NOT EXISTS `posts` (
`id` int(6) unsigned NOT NULL AUTO_INCREMENT,
`contents` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`title` varchar(150) CHARACTER SET utf8 COLLATE utf8_polish_ci DEFAULT NULL,
`data` date NOT NULL,
`author` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

INSERT INTO `posts` (`id`, `contents`, `title`, `data`, `author`) VALUES
(1, 'Przykładowy tekst', 'Programowanie obiektowe jest łatwe', '2016-03-17', 'Admin');

Jeśli chcesz wiedzieć, co oznaczają te polecenia, większość opisałem tutaj : http://www.prosteprogramowanie.pl/mysql/mysql-podstawowe-komendy-zapytania-polecenia-itp/ Nie zniechęcaj się! Nie ucz się ich na pamięć! Pisanie ich przyjdzie Ci z czasem 🙂

Czas na kodowanie:

Zaczynamy od utworzenia połączenia, tak jak w poprzedniej lekcji. Tworzymy obiekt typu mysqli i podajemy mu dane bazy:

$connection = new mysqli('localhost','root','','blog');

Chcemy pobrać wszystkie dane z tabeli posts.  Tworzymy więc zmienną do której trafi rezultat zapytania oraz wywołujemy zapytanie, przy pomocy funkcji query(): Funkcje ta należy do każdego obiektu typu mysqli. To właśnie takim obiektem jest $connection, gdyż powstał według klasy mysqli. Wywołujemy więc ją z tego obiektu.

$result = $connection->query("SELECT * FROM POSTS");

Mówi ono bazie: „Wybierz wszystko z tabeli posts”. Gwiazdka znaczy wszystko :).

No dobrze, podglądnij teraz z ciekawości co jest w zmiennej $result za pomocą funkcji print_r();

print_r($result);

Jak widzisz, nie znalazłeś tam nic, czego byś oczekiwał. Aby otrzymać czyste dane z bazy, np. w formie tablicy, trzeba zrobić coś jeszcze. Dane takie możemy pobrać np. w formie tablicy asocjacyjnej. Jest to tablica, której indeksy są nazwami kolumn tabeli. Jest to raczej najbardziej intuicyjny sposób, aby potem się do nich odwoływać.

Użyjemy więc funkcji fetch_assoc(), którą posiada obiekt $result. Jest on obiektem który powstał według klasy mysqli_result, podczas tworzenia zapytania. Jak widać, nie musieliśmy używać słówka new, wszystko zrobiło się samo 🙂

print_r($result->fetch_assoc());

Możemy to zapisać gdzieś np.

$tablicaAsocjacyjna = $result->fetch_assoc();

Jak widać teraz mamy już konkretne dane, w formie tablicy. Na zadanie domowe, wiedząc już czym jest tablica, użyj kodu z dzisiejszej lekcji. Dodaj go do kodu z 4 lekcji programowania obiektowego. Wrzuć dane z tablicy asocjacyjnej do obiektu typu post, za pomocą setterów, tak aby wszystko ładnie się wyświetlało. Powodzenia! 🙂

Kod końcowy tej lekcji:

 $connection = new mysqli('localhost','root','','blog');
$result = $connection->query("SELECT * FROM POSTS");
$tablicaAsocjacyjna = $result->fetch_assoc();
print_r($tablicaAsocjacyjna);

 

 

Dodaj komentarz

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