megismerése, mintaadatbázis létrehozása A Web programozása 4. előadás MySQL adatbáziskezelő telepítése, phpMyAdmin kezelőfelület telepítése és megismerése, mintaadatbázis létrehozása Rózsa Szabolcs BME Általános- és Felsőgeodézia Tanszék
Tartalom Űrlapok szerkezete és létrehozása Az adatbeviteli eszközök Adatátvitel módja (POST, GET) Űrlapok adatainak kezelése PHP-ben
MySQL telepítése
MySQL telepítése
MySQL telepítése
MySQL telepítése Általában célszerűbb szolgáltatásként telepíteni
MySQL telepítése
MySQL indítása parancssorból
A root password beállítása Command prompt: mysql –u root -p A default root password egy üres string mysql> use mysql Válasszuk ki a mysql adatbázist mysql> select User, Password from user where User=‘root’; Nézzük meg a root felhasználó jelszavait. Miért kaptunk három rekordot válaszként?
mysql> select Host, User, Password from user where User=‘root’; Vegyük észre, hogy az adatbázis jogosultságok függ(het)nek a host-tól is! Vegyük észre, hogy az adatbázis jogosultságok függ(het)nek a host-tól is! Állítsuk be a ‘root’ felhasználó jelszavát:
phpMyAdmin telepítése Töltsük le, majd tömörítsük ki az állományt másoljuk be a teljes phpMyAdmin könyvtárat a webterület (e:\webprog\htdocs) alá nevezzük át a könyvtárat valamilyen egyszerűbb névre (pl. myadmin) nyissuk meg a böngészőben a http://localhost/myadmin/index.php oldalt
phpMyAdmin
phpMyAdmin Hozzunk létre egy új adatbázist!
Új adatbázis létrehozása
Hozzunk létre egy új táblát az adatbázisban!
Hozzunk létre mezőket az új táblában
A tábla szerkezete
Helyezzünk el adatokat a táblában!
Kérdezzük le a 2011-03-22 nap eseményeit!
Hozzuk létre a típus táblát! Latin-2 Hungarian
Töltsük fel az alábbi adatokkal ID LEIRAS 1 Tárgyalás 2 Telefonhívás 3 Emlékeztető 4 Születésnap INSERT INTO tipus (LEIRAS) VALUES ('Tárgyalás'); INSERT INTO tipus (LEIRAS) VALUES (‘Telefonhívás'); INSERT INTO tipus (LEIRAS) VALUES (‘Emlékeztető'); INSERT INTO tipus (LEIRAS) VALUES (‘Születésnap');
Az ORDER BY opció használata lekérdezésekben SELECT * FROM tipus ORDER BY LEIRAS ASC;
Táblák összekapcsolása SELECT esemeny.ESEMENY, esemeny.KEZDES, esemeny.VEGE, tipus.LEIRAS FROM esemeny,tipus WHERE (esemeny.TIPUS = tipus.ID) ORDER BY esemeny.KEZDES ASC; SELECT * FROM esemeny INNER JOIN tipus ON esemeny.TIPUS=tipus.ID; esemeny tábla tipus tábla
MySQL adatbáziskezelés PHP-ből Az előző órán használt adatbeviteli űrlapon az események típusát adatbázisból kérdezzük le:
MySQL adatbáziskezelés PHP-ből Lépések: Csatlakozás az adatbázishoz A lekérdezéshez szükséges SQL utasítás kialakítása, ellenőrzése phpMyAdmin-ból. PHP forráskód: Lekérdezés indítása Válaszrekordok kezelése Az űrlap választógombjainak feltöltése PHP-ből
MySQL adatbáziskezelés PHP-ből $username="root"; $password="ujjelszo"; $hostname="localhost"; $dbkapcsolodas=mysql_connect($hostname, $username, $password) or die ("Nem tudok csatlakozni a MySQL adatbázishoz"); $adatbazis=mysql_select_db("naptar",$dbkapcsolodas) or die ("Nem tudom kiválasztani a naptar adatbázist"); $lekerdez = mysql_query("SET CHARACTER SET latin2"); $lekerdez = mysql_query("SET NAMES latin2"); $lekerdez = mysql_query("SELECT * FROM tipus ORDER BY LEIRAS ASC"); while ($rekordok = mysql_fetch_array($lekerdez, MYSQL_ASSOC)) { echo "<p><font face=\"Arial\">"; echo "<input type=\"radio\" name=\"Tipus\" value=\"".$rekordok{'ID'}. "\">".$rekordok{'LEIRAS'}."</font></p>"; } mysql_close($dbkapcsolodas); ?> Kapcsolódási információk Kapcsolódás az adatbázis-szerverhez
További eseménytípusok hozzáadása Adatbázis adminisztrátorként adjunk hozzá az adatbázishoz további eseménytípusokat: ID LEIRAS 5 Házassági évforduló 6 Előadás 7 Szórakozás 8 Hivatali ügyintézés INSERT INTO tipus (LEIRAS) VALUES (‘Házassági évforduló'); INSERT INTO tipus (LEIRAS) VALUES (‘Előadás'); INSERT INTO tipus (LEIRAS) VALUES (‘Szórakozás'); INSERT INTO tipus (LEIRAS) VALUES (‘Hivatali ügyintézés');
További eseménytípusok hozzáadása Nézzük meg az adatbázisban történő változások hatását az űrlapon: Az új lehetőségek újabb PHP kódfejlesztés nélkül megjelentek az űrlapon!
Lépjünk tovább! Dolgozzuk fel az űrlap adatait! //A típusok értelmezéséhez lekérdezzük az adatbázisban szereplő típusazonosítókat és leírásokat //Kapcsolódáshoz szükséges adatok $username="root"; $password="ujjelszo"; $hostname="localhost"; //Adatbázis kapcsolódás $dbkapcsolodas=mysql_connect($hostname, $username, $password) or die ("Nem tudok csatlakozni a MySQL adatbázishoz"); //Adatbázis kiválasztása $adatbazis=mysql_select_db("naptar",$dbkapcsolodas) or die ("Nem tudom kiválasztani a naptar adatbázist"); //Karakterkódolás átállítása $lekerdez = mysql_query("SET CHARACTER SET latin2"); $lekerdez = mysql_query("SET NAMES latin2"); //Lekérdezés a 'naptar' adatbázis 'tipus' táblájából $lekerdez = mysql_query("SELECT * FROM tipus ORDER BY LEIRAS ASC"); while ($rekordok = mysql_fetch_array($lekerdez, MYSQL_ASSOC)) { if ($Tipus == $rekordok{'ID'}) echo "<td>A program típusa</td><td>".$rekordok{'LEIRAS'}."</td></tr>"; } //Adatbáziskapcsolat lezárása mysql_close($dbkapcsolodas);
Lépjünk tovább! Dolgozzuk fel az űrlap adatait! http://localhost/eloadas04/form.php http://localhost/eloadas04/ processform.php
Lépjünk tovább! Mentsük el az adatokat az adatbázisban! <?php //A program címének kiíratása $program=$_POST['program']; echo "<td>A program címe:</td><td>".$program."</td></tr>"; //A program kezdésének meghatározása $kezdev=$_POST['kezdev']; $kezdho=$_POST['kezdho']; $kezdnap=$_POST['kezdnap']; $kezdora=$_POST['kezdora']; $kezdperc=$_POST['kezdperc']; $kezdes=$kezdev."-".$kezdho."-".$kezdnap." ".$kezdora.":".$kezdperc; echo "<tr><td>A program kezdete:</td><td>".$kezdes."</td></tr>"; //A program végének meghatározása $befev=$_POST['befev']; $befho=$_POST['befho']; $befnap=$_POST['befnap']; $befora=$_POST['befora']; $befperc=$_POST['befperc']; $vege=$befev."-".$befho."-".$befnap." ".$befora.":".$befperc; echo "<tr><td>A program vege:</td><td>".$vege."</td></tr>";
Lépjünk tovább! Mentsük el az adatokat az adatbázisban! //A program típusa $Tipus=$_POST['Tipus']; echo "<tr><td>A program típusa:</td><td>".$Tipus."</td></tr>"; //Kapcsolódáshoz szükséges adatok $username="root"; $password="ujjelszo"; $hostname="localhost"; //Adatbázis kapcsolódás $dbkapcsolodas=mysql_connect($hostname, $username, $password) or die ("Nem tudok csatlakozni a MySQL adatbázishoz"); //Adatbázis kiválasztása $adatbazis=mysql_select_db("naptar",$dbkapcsolodas) or die ("Nem tudom kiválasztani a naptar adatbázist"); //Karakterkódolás átállítása $lekerdez = mysql_query("SET CHARACTER SET latin2"); $lekerdez = mysql_query("SET NAMES latin2"); //Lekérdezés a 'naptar' adatbázis 'tipus' táblájából $lekerdezes_string = "INSERT INTO esemeny (ESEMENY,KEZDES,VEGE,TIPUS) VALUES ('".$program."','".$kezdes."','".$vege."','".$Tipus."')"; mysql_query($lekerdezes_string); //Adatbáziskapcsolat lezárása mysql_close($dbkapcsolodas); ?>
Lépjünk tovább! Mentsük el az adatokat az adatbázisban! Az eredmény a MySQL adatbázisban: