180 likes | 256 Views
A Web programozása 5. előadás PHP szkriptek alkalmazása a webes adatbázis kezelésére. Rózsa Szabolcs BME Általános- és Felsőgeodézia Tanszék. Tartalom. Az adatbázis és a naptárfelület integrálása Mintafeladatok: űrlapok tervezése, szerkesztése; mintaadatbázisok létrehozása;
E N D
A Web programozása 5. előadás PHP szkriptek alkalmazása a webes adatbázis kezelésére Rózsa Szabolcs BME Általános- és Felsőgeodézia Tanszék
Tartalom • Az adatbázis és a naptárfelület integrálása • Mintafeladatok: • űrlapok tervezése, szerkesztése; • mintaadatbázisok létrehozása; • kapcsolódó PHP szkriptek fejlesztése;
Hol tartottunk? • Feladat: • integráljuk az adatbeviteli űrlapot a naptáralkalmazásba; • módosítsuk a naptárat úgy, hogy a napra kattintva, az aznapi programok megjelenjenek (ha vannak ilyenek)
1. lépés: Az adatbeviteli űrlap integrálása a naptárba Hozzunk létre egy linket, ami az adatbeviteli űrlapra mutat! • Másoljuk be az e:\webprog\eloadas04 könyvtárban található php fájlokat az e:\webprog\calendar könyvtárba! • Nyissuk meg az e:\webprog\calendar könyvtárban az index.php-t! • Hozzunk létre egy linket a form.php fájlra!
Próbáljuk ki, hogy működik-e az adatbevitel! • indítsuk el a MySQL adatbázisszervert (parancssor -> mysqld)! • nyissuk meg a böngészőben a phpmyadmin felületet! (http://localhost/myadmin) • Próbáljunk meg felvinni egy új eseményt: • Web programozása óra • 2011-04-18 14.15-16.00 • típus: előadás
Ellenőrizzük le az adatbevitel sikerességét az adatbázisban!
Események megjelenítése • abban az esetben, ha egy naphoz tartoznak események, akkor a napok sorszáma egy link legyen; • a link mutasson egy olyan php szkriptre, amelyik az adott nap eseményeit válogatja le, és meg is jeleníti azokat.
Az adatbáziskapcsolat felépítése $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");
Naponként lekérdezzük az aznapi teendőket, eldöntjük, hogy van-e aznapra programunk for ($j=0; $j<7; $j++) // For ciklus a hét napjaira { $caldatearray = getdate($caldate); $querystring = "SELECT * FROM esemeny WHERE DATE(KEZDES)='".$today[year]."-".$caldatearray[mon]."-".$caldatearray[mday]."';"; $lekerdez = mysql_query($querystring); $nincs_esemeny=0; $rekordok=mysql_fetch_array($lekerdez, MYSQL_ASSOC); if (empty($rekordok)) { $nincs_esemeny=1; }
Kiíratjuk a napokat, szükség esetén linket helyezünk el if ($nincs_esemeny) { if ($today[mday] == $caldatearray[mday]) echo "<td><font color=\"#FF0000\"><b><i><u>$caldatearray[mday] </u></i></b></font>$nincs_esemeny</td>"; else { if ($caldatearray[wday] == 0) echo "<td><font color=\"#FF0000\"><b>$caldatearray[mday] </b></font></td>"; else echo "<td>$caldatearray[mday]</td>"; // Ha az aktuális hónaphoz tartozik, akkor pedig feketével } } else { echo "<td><a href=\"select.php?year=$today[year]&month= $caldatearray[mon]&day=$caldatearray[mday]\"> $caldatearray[mday]</a></td>"; } GET metódus
PHP szkript írása a napi programok leválogatására GET metódust használtunk a lekérdezési adatok átadásához (year, month, day) <head> <title>Naptár- Műszaki Térinformatika Szakmérnöki képzés: A WEB programozása</title> </head> <body> <p><font face="Arial">A napi programok:</p> <table width="800" cellpadding="0" cellspacing="0" align="center"><tr bgcolor="#CCCCCC" align="center"> <td width="200">Program</td><td width="200">Kezdés</td><td width="200">Vége</td><td width="200"> Típus</td></tr> <?php $ev=$_GET['year']; $ho=$_GET['month']; $nap=$_GET['day']; $querystring="SELECT esemeny.ESEMENY, esemeny.KEZDES, esemeny.VEGE, tipus.LEIRAS FROM esemeny,tipus WHERE (esemeny.TIPUS = tipus.ID AND DATE(KEZDES)='".$ev."-".$ho."-".$nap."')";
PHP szkript írása a napi programok leválogatására //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");
PHP szkript írása a napi programok leválogatására $lekerdez = mysql_query($querystring); while ($rekordok = mysql_fetch_array($lekerdez, MYSQL_ASSOC)) { echo "<tr>"; echo "<td align=\"center\">".$rekordok{'ESEMENY'}."</td>"; echo "<td align=\"center\">".$rekordok{'KEZDES'}."</td>"; echo "<td align=\"center\">".$rekordok{'VEGE'}."</td>"; echo "<td align=\"center\">".$rekordok{'LEIRAS'}."</td>"; echo "</tr>"; } //Adatbáziskapcsolat lezárása mysql_close($dbkapcsolodas); ?> </table> </body>
Próbáljuk ki a szkriptet! Önálló feladat: Oldjuk meg a programok törlésének lehetőségét! A napi programok nézetben szerepeljen a táblázatban egy törlésre szolgáló link. A link megjelenítéséhez használjuk a torles.jpg ikont!