6. előadás: PHP-MySQL Barabás Péter

Slides:



Advertisements
Hasonló előadás
Tananyag: konzultáció
Advertisements

2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
PL/SQL folytatás Kurzorok Alprogramok Tárolt eljárások ADATBÁZIS ALAPÚ RENDSZEREK.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
1 Informatikai Szakképzési Portál Adatbázis kezelés DCL – Adatvezérlő nyelv.
Delphi programozás alapjai
Adatbázis kezelés. Hierarchikus modell Legrégebbi modell, ma már nem használatos. Az adatokat fákban tároljuk, ahol minden pont a szegmens adatokat, és.
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
megismerése, mintaadatbázis létrehozása
HTML űrlapok kezelése és feldolgozása PHP segítségével
Dinamikus tömbök.
Bevezetés a Java programozásba
Programozás II. 3. Gyakorlat C++ alapok.
Készítette: Sárközi Anikó
Adatbázis-kezelés ACCESS program:
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
Oktassunk adatbázis-kezelést! Micskei Zoltán Microsoft Referencia Iskola.
Adatbázis kezelés Delphiben
Delphi programozás 8. ELŐADÁS ADO ActiveX Data Objects.
Webszerkesztés Űrlapok a HTML-ben. Űrlap létrehozása Űrlapunk tartalma a … elemek között fog helyetfoglalni Egy lapon több űrlap is elhelyezhető Több.
Nézettáblák létrehozása, módosítása és törlése
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
Operációs rendszerek gyakorlat 4. Gyakorlat Vakulya Gergely.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
PHP III. Fájlok, űrlapok.
PHP VII Sütik, munkamenetek. Sütik Mi az a süti? A süti (cookie) állapotot tárol a felhasználó böngészőjében. Pl. ha egy oldalon beállítható, hogy milyen.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Űrlapok és keretek.
Adatbázis-kezelés SQL-lel
Felhasználók és jogosultságok
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
PHP szkriptek alkalmazása a webes adatbázis kezelésére
Nézzük, mit tudunk…. Mire gondoltam? Megjeleníti az adott adatbázishoz kapcsolódó összes objektumot : adatbázis ablak.
Fejlesztés PHP-NUKE portál rendszerre Horváth Zoltán Második Magyarországi PHP Konferencia március 27. Copyright PHP Konferencia,
Objektum orientált programozás a gyakorlatban
Készítette: Lipp Marcell
APEX BMF, II. félév.
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
3. előadás.  Apache szerver tudnivalók  Az index.php .htaccess – web-szerverünk beállításai  Konfigurációs állományok  Adatbázis kapcsolódás beállítása.
4. előadás.  Általánosan a modellről  Table Data Gateway Pattern  A modellosztályok áttekintése  Zend_Db modellek nélkül  Controllerek ismét  Action-ök,
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
A gyakorlatok munkakörnyezete
Web fejlesztés V. Illés Zoltán ELTE Informatikai Kar
HTML 2. Űrlapok
Adatbázis-kezelés Tarcsi Ádám január. 15. MySQL és PHP.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
Webprogramozó tanfolyam
5. gyakorlat Fleiner Rita.
Webprogramozó tanfolyam
Webprogramozó tanfolyam Űrlapok (form-ok). Űrlapok a HTML-ben Biztosan mindenki találkozott már vele – Űrlap példapélda Felhasználási lehetőségei – Regisztráció,
HTML ÉS PHP (Nagyon) rövid áttekintés. ADATBÁZISRENDSZEREK MŰKÖDÉSI SÉMÁJA Felh. interakció DB Connector MySQL ? A gyakorlaton:
Illés Zoltán ELTE Informatikai Kar
Violet nails Készítette: Csőke Vivien. Bevezetés Téma: Violet nails - műkörömkészítő weblapjának elkészítése A weboldal elérhető az alábbi címen: violetnails.atw.hu.
Spanyolország gyöngyszeme: GRANADA Egy hobby portál kivitelezése.
Programozás III JPA.
Készítette: Kiss András
PHP függvények MySQL adatbázisok kezelésére
Webprogramozó tanfolyam
Riportok, táblák, programok
Alkalmazásfejlesztés gyakorlat
PHP-SQL adatbáziskezelő parancsai
Előadás másolata:

6. előadás: PHP-MySQL Barabás Péter WEB TECHNOLÓGIÁK

Tartalom MySQL áttekintés PHP MySQL függvények Példák

MySQL – Parancssori kliens MySQL documentáció {MYSQL_INSTALL_DIR}\docs\manual_toc.html Telepítési instrukciók WAMP, XAMPP részeként MySQL önállóan Csatlakozás parancssorból mysql [OPTIONS] [DB] mysql –u <usernév> –p <dbnév> SQL script futtatás mysql –u <usernév> -p < script.sql GUI client Mysql Control Center PhpMyAdmin

Adattábla létrehozás Web_db adatbázis létrehozása: CREATE DATABASE web_db; Notes nevű tábla létrehozása: USE web_db; CREATE TABLE notes (…); Teszt adatok beszúrása Érdemes script fájlban megírni majd futtatni az előbb említett módokon

Alap utasítások(emlékeztető) CREATE Adatbázisok és táblák (egyéb objektumok) létrehozása SELECT Táblaadatok lekérdezése adott feltételre illeszkedően DELETE Egy vagy több sor törlése a táblából INSERT Új sor (vagy sorok) beszúrása a táblába UPDATE Rekord módosítás ALTER Tábla (egyéb db objektum) szerkezet módosítása

PHP-MySQL függvények Kapcsolódás adatbázishoz Lekérdezés Eredmények kezelése Erőforrások felszabadítása Kapcsolat bezárás

Kapcsolódás adatbázishoz mysql_connect(server, username, password) Kapcsolódás a MySQL szerverhez egy adott porton Alapértelmezetten: „localhost:3306” Username és password sztring típusúak Visszatérési érték FALSE hiba esetén Példa $db_link = mysql_connect("localhost:3306","test", "123"); Létezik perzisztens kapcsolat: mysql_pconnect

Példa

Adatbázis kiválasztása mysql_select_db(name, link) Name: adatbázis neve (sztring) Link: opcionális, egy nyitott kapcsolat referenciát vár, amit a connect visszaad Amennyiben a link nincs megadva, az utolsó nyitott kapcsolatot használja Visszatési érték: TRUE sikeresség esetén, egyébként FALSE Példa mysql_select_db("web_db");

Példa

Hibakezelés – I. mysql_error(link) Hibaüzenettel vagy hibakóddal tér vissza Link opcionális Az utolsó nyitott kapcsolatot használja, amennyiben a link nincs megadva Ha nincs hiba, akkor üres stringgel tér vissza Példa mysql_error();

Hibakezelés – II. mysql_no(link) Ha nincs hiba, a visszatérési érték 0 A hiba kódjával tér vissza Link opcionális Az utolsó nyitott kapcsolatot használja, amennyiben a link nincs megadva Ha nincs hiba, a visszatérési érték 0 Példa mysql_no();

Példa

Utasítások készítése – I. mysql_query(query, link) select lekérdezést készítése A query a lekérdezés szövege Ne tartalmazzon a query záró pontosvesszőt A visszatérési értéke egy erőforrás azonosító, vagy FALSE, amennyiben a lekérdezés Hibás SHOW vagy DESCRIBE Példa (a books tábla összes sorának lekérdezése) $query = "SELECT * FROM books"; $result = mysql_query($query);

Utasítások készítése – II. INSERT and UPDATE utasítások erőforrás Visszatérési érték: TRUE sikeresség esetén FALSE hiba esetén Példa (a könyv tábla szerkezeti leírása) $query = "DESCRIBE books"; $status = mysql_query($query);

Példa

Metadatok kezelése mysql_list_fields(database, table, link) Példa Metadatokat szolgáltat az adott adatbázis adott táblájáról A visszatérési érték tartalmazza a tábla metaadatait (oszlopnevek, típusok) Példa $fields = mysql_list_fields("web_db", "books");

Tábla mezőinek darabszáma mysql_num_fields(result) A tábla mezőinek darabszámát adja vissza A result paraméter egy erőforrás referencia, amit a mysql_list_fields függvény ad vissza Példa $fields = mysql_list_fields("web_db", "books"); $num_columns = mysql_num_fields($fields);

Tábla mezőinek neve mysql_field_name(result, index) A tábla index-edik mezőjének nevével tér vissza (index: 0,1,…) A result paraméter egy erőforrás referencia, amit a mysql_list_fields függvény ad vissza Példa: az első mező neve $fields = mysql_list_fields("web_db", "books"); $isbn = mysql_field_name($fields, 0);

Példa

Adatsorok kezelése – I. mysql_fetch_row(result) Példa Minden hívása egy indexelt tömb következő sorával tér vissza A result paraméter egy erőforrás referencia, amit a mysql_query függvény ad vissza A visszatérési érték FALSE, ha már nincs több sor Példa $query = "SELECT * FROM books"; $result = mysql_query($query); $row = mysql_fetch_row($result); // row 0 $isbn = $row[0]; // isbn for row 0

Adatsorok kezelése – II. mysql_fetch_assoc(result) Működése hasonló a mysql_fetch_row működéséhez, de a következő sorra egy asszociatív tömbként hivatkozhatunk Példa $query = "SELECT * FROM books"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); // row 0 $isbn = $row['isbn']; // isbn for row 0

Adatsorok kezelése – III. mysql_fetch_array(result) A mysql_fetch_row, mysql_fetch_assoc kombinációja A következő sorra asszociatív és indexelt tömbként is lehet hivatkozni Példa $query = "SELECT * FROM books"; $result = mysql_query($query); $row = mysql_fetch_array($result); // row 0 $isbnA = $row[0]; // isbn for row 0 $isbnB = $row['isbn']; // can also get it this way

Adatsorok kezelése – IV. mysql_num_rows(result) Egy lekérdezés eredményrekordjainak számát adja vissza Result a mysql_query által visszaadott erőforrás mysql_affected_rows(result) INSERT, UPDATE, or DELETE utasítások után használatosak Visszatér az érintett rekordok számával result paraméter a mysql_query visszatérési értéke

Egyéb függvények mysql_real_escape_string(string,link) Visszatér egy átalakított sztinggel, amit biztonságosan használhatunk a mysql_query-ben MySQL 4.1-től használhatóak a mysqli_... Függvények Több lehetőség, Új funkcionalitások OO interface Tárolt eljárások támogatása Tranzakciókezelés Fejlettebb debugolási lehetőségek

Erőforrások felszabadítása mysql_free_result(result) Egy adott erőforrás által lefoglalt memória felszabadítása Result: erőforrás referencia Hívása nem szükséges, kivéve nagy eredményhalmazok esetén Automatikusan lefut, amikor a script futása véget ér mysql_close(link) Bezárja az adatbázis kapcsolatot Perzisztens kapcsolatokra nincs hatással

Mezőnevek feldolgozása

Eredményrekordok feldolgozása – I.

Eredményrekordok feldolgozása – II.

Db_connect függvény Scriptekben használatos Érdemes egy db_connect.php nevű file-ba írni és includálni

Books adatbázis példa – I. Books.sql

Books adatbázis példa – II. Books.sql

Books adatbázis példa – III. books.sql futtatása parancssorban mysql -u xxxxx -p < c:/.../books.sql Lehet phpMyAdmin-ban is Következő lépés: Dbase.php írása A könvyadatokat megjeleníti HTML táblázatban

Books adatbázis példa – IV.

Dbase.php – I. HTML header info

Dbase.php – II. Kapcsolódás $db_link = db_connect("web_db"); Ez a függvény a db_connect.php include file- ban van Az include path a php.ini-ben definiált include_path=".;c:\Apache\phpincludes"

Dbase.php – III. Lekérdezzük az összes rekordot az összes mezővel $query = "SELECT * FROM books"; $result = mysql_query($query) or die("SQL Query failed"); Tábla tulajdonságok lekérdezése $fields = mysql_list_fields("web_db", "books"); $num_columns = mysql_num_fields($fields)

Dbase.php – IV. A mezőfejléceket a HTML táblázat fejlécébe írjuk ki

Dbase.php – V. A könyv adatokat egy HTML táblázatként írjuk ki

Dbase-php – VI. Szabadítsuk fel az erőforrásokat és zárjuk be a kapcsolatot mysql_free_result($result); mysql_close($db_link); ?> </body> </html>

Script hívása gomb kattintásra – I. Adjunk nevet és értéket a nyomógombnak <input type="submit" name="choice" value="Display"> Ha a form submitálódik, akkor a név index létező lesz if (isset($_REQUEST['choice']) { // process the button click here } ... Több submit gomb esetén a neveknek és értékeknek különbözniük kell

Script hívása gomb kattintásra – II. Másik előnye a submit gomb label-jének (értékének) használatának, hogy meg tudunk különböztetni választási lehetőségeket Több submit gombnak lehet ugyanaz a neve, de az értékekben különbözniük kell

Script hívása linkben Egy link alkalmas lehet arra, hogy meghívjunk egy scriptet vele, vagy paramétereket adjunk át a GET metódust használva

Javaslatok weboldal Felhasználók javaslatokat tehetnek azáltal, hogy egy textarea-t kitöltenek és elküldik A javaslatok egy MySQL adatbázisban mentődnek el (web_db) A javaslatok időrendben kerülnek megjelenítésre

Javaslat doboz megjelenés

Sbox.sql

Script logika IF új javaslat kérelem érkezett THEN ELSE Jelenítsük meg az űrlapot ELSE IF form submitálódott THEN Szúrjuk be a javaslatot az adatbázisba ENDIF Kérdezzük le a javaslatokat az adatbázistáblából IF létezik javaslat, azaz a lekérdezés nem üres THEN Jelenítsük meg Javaslat táblázat üres Kínáljuk fel a linket, hogy a felhasználó tudjon megadni javaslatokat

Sbox.php – I.

Sbox.php – II.

Sbox.php – III.

Sbox.php – IV.

Más verziók Létezik: sbox2, sbox3, sbox4 Sbox2 a HTML text értékeket kvótázza, helyesen kezeli Sbox3-ban hiba ellenőrzés is van Sbox4 az sbox3 egyszerűsített verziója Form mindig látható Nincs szükség linkre

Sbox4.php – I.

Sbox4.php – II.

Sbox4.php – III.

Sbox4.php – IV.

Köszönöm a figyelmet!