PHP 9. - lomilowka.pl
Transkrypt
PHP 9. - lomilowka.pl
Używanie MySQL w PHP. 0. Musimy mieć sprawny serwer mysql i php oraz odpowiednie uprawnienia dostępu ;-) (XAMPP) 1. Dodajemy testowe dane do bazy najprościej: • logujemy się na mysqla • przygotowujemy dane w pliku tekstowym zawierające polecania dla serwera mysql i zapisujemy w pliku z rozszerzeniem .sql • ładujemy dane do serwera poleceniem source nazwa_pliku.sql • Jak się dane załadują możemy przejść do PHP 2. Aby połączyć się z bazą potrzebujemy 3 parametrów. Nazwy serwera, nazwę użytkownika i hasło. Nasz serwer to localhost, ale nawet łącząc się na z serwerem w wykupionym hostingu również jako serwer podaje się localhost. Warunkiem jest działanie bazy danych na tym samym serwerze, na którym uruchamiamy skrypt łączenia z bazą. Ale w 99% przypadków jeśli firma hostingowa udostępnia możliwość zakładania bazy danych to logując się do niej podajemy serwer localhost. Wyjątkiem może być sytuacja, kiedy mamy wykupionych kilka hostingów. W ten sposób możemy mieć bazę danych na innym serwerze niż działa nasza strona. Wtedy zamiast localhost musimy podać adres serwera z innego hostingu. Tyle teorii. Funkcja php odpowiadająca za połączenie z bazą danych MySQL to mysql_connect(); w nawiasie wpisujemy parametry. Całość wygląda następująco: <?php $serwer = 'localhost'; $uzytkownik = 'root'; $haslo = 'hasloZphpmyadmina_ w XAMMP jest puste'; $polaczenie = mysql_connect($serwer, $uzytkownik, $haslo); if(!$polaczenie) { die('Błąd połączenia: ' . mysql_error()); } // operacje wykonywane na bazie mysql_close($polaczenie); ?> 3. Jeżeli plik prawidłowo się łączy z bazą można wypełnić treścią miejsce: // operacje wykonywane na bazie np. dane z pliku przykładowego wyświetlimy w formie tabelki ilości wierszy z tabeli będzie odpowiadała ilości danych w bazie danych a wygadało by to tak: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <?php function polaczZBazaDanych($host, $user, $pass, $db) { if(!($connn = @mysql_connect($host, $user, $pass))) { echo 'ERROR MySQL: Connect to Server<br>'; exit; } if(!mysql_select_db($db, $connn)) { echo 'ERROR MySQL: Connect to DataBase'; exit; } if(!mysql_query('SET NAMES "utf8";', $connn)) { echo 'ERROR MySQL: SET NAMES "utf8"<br>'; exit; } if(!mysql_query('SET CHARACTER SET "utf8";', $connn)) { echo 'ERROR MySQL: SET CHARACTER SET "utf8"<br>'; exit; } if(!mysql_query('SET character_set_client = "utf8";', $connn)) { echo 'ERROR MySQL: SET character_set_client = "utf8"<br>'; exit; } if(!mysql_query('SET character_set_results = "utf8"', $connn)) { echo 'ERROR MySQL: SET character_set_results = "utf8"<br>'; exit; } if(!mysql_query('SET character_set_connection = "utf8"', $connn)) { echo 'ERROR MySQL: SET character_set_connection = "utf8"<br>'; exit; } mb_internal_encoding('UTF-8'); mb_regex_encoding('UTF-8'); return $connn; } $serwer = 'localhost'; $uzytkownik = 'root'; $haslo = ''; $baza='mojaBaza'; $con = polaczZBazaDanych($serwer, $uzytkownik, $haslo, $baza); $query = 'SELECT * FROM pracownicy; '; $result = mysql_query($query,$con); if (!$result) { $message = 'Invalid query: ' . mysql_error() . "\n"; $message .= 'Whole query: ' . $query; die($message); } echo '<table border=1><tr><td>ID:</td><td>Imię:</td><td>Nazwisko:</td></tr>'; while ($row = mysql_fetch_assoc($result)) { echo "<tr><td>" . $row["ID"]. "</td><td>" . $row["imie"]. "</td><td>" . $row["nazwisko"]. "</td></tr>"; } echo '</table>'; mysql_close($con); ?> </body> </html> Ćwiczenia: 1. Zmień nazwy kolumn w bazie danych z ID, imię, nazwisko na kol1, kol2, kol3. 2. Dodaj kolejnych 10 rekordów z losowymi znakami. 3. Dodaj do tabeli kolumny wiek, klasa, plec, adres (właściwych typów) wypełnij losowymi danymi i wyświetl na ekranie (w php of corz). 4. Dodaj druga tabelę samochody z kolumnami: ID marka, kolor, nr rejestracyjny, rocznik przebieg (właściwych typów) wypełnij 20 rekordami losowych danumi. 5. Wyświetl pod tabelą pracownicy zawartość tabeli (w php of corz). 6. Dodaj 3 tabele użytkownicy zamierającą ID login hasło (właściwych typów) wypełniamy 10- losowymi rekordami. 7. Na stronie wyświetl mężczyzn na niebiesko a kobiety na różowo.