PHP szkriptek alkalmazása a webes adatbázis kezelésére 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!
Index.php
Index.php
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
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>"; echo "<td>$caldatearray[mday]</td>"; // Ha az aktuális hónaphoz tartozik, akkor pedig feketével } 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!
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!