//Definiálunk változókat egy külső fájlban. Külön fájlban definiálás nélkül is csatlakozhatunk pl.: mysql_pconnect(‘hostnév’,’felhasználónév’,’jelszó’) or die ($hibauzenet); - viszont külső fájl segítségével, csak 1 helyen szükséges megadni az adatokat. Ha módosításra van szükség, akkor csak 1 fájlt kell módosítani (pl.: Jelszóváltás esetén)">

Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Tananyag: konzultáció

Hasonló előadás


Az előadások a következő témára: "Tananyag: konzultáció"— Előadás másolata:

1 Tananyag: 4. 5. konzultáció
Adatbázis-MYSQL

2 Mysql-Php csatlakozás
Include.php tartalma: <? define("host",„hoszt_neve"); define("user",„felhasználónév"); define("pass",„jelszó"); define("dbname",„adatbázis neve"); $hibauzenet="Adatbázis hiba!"; ?> //Definiálunk változókat egy külső fájlban. <? include ("include.php"); // meghívjuk az include.php fájlunkat mysql_pconnect(host,user,pass) or die ($hibauzenet); // csatlakozunk a mysql adatbáziskezelőhöz,ha az include-ban lévő adatok helyesek, akkor csatlakozik, egyébként kiírja $hibauzenet tartalmát. Mysql_connect is használható. A pconnect véges számú kapcsolatot engedélyez. mysql_select_db(dbname) or die ($hibauzenet); // csatlakozunk egy konkrét adatbázishoz, ha nincs ilyen adatbázis, vagy nincs megfelelő jogunk, akkor a mysql hibaüzenettel tér vissza. ?> Külön fájlban definiálás nélkül is csatlakozhatunk pl.: mysql_pconnect(‘hostnév’,’felhasználónév’,’jelszó’) or die ($hibauzenet); - viszont külső fájl segítségével, csak 1 helyen szükséges megadni az adatokat. Ha módosításra van szükség, akkor csak 1 fájlt kell módosítani (pl.: Jelszóváltás esetén)

3 Mysql – adatbázis létrehozása
Adatbázist egyszerűen phpmyadmin segítségével hozhatunk létre, ami egy webes grafikus felület a mysql-hez. Telepítése az útmutatóban. Phpmyadmin nélkül is alakíthatjuk adatbázisunk tábláit,mezőit és adatait. Adatbázis létrehozása (a gyakorlatokon erre nem lesz szükség): <? …csatlakozás… $sql = "CREATE DATABASE uj_adatbazis_neve "; mysql_query($sql) or die (mysql_error()); // a mysql_query parancs segítségével az $sql változóban lévő szöveget, ami egy sql utasítás, végrehajtatjuk. ?> Mivel a hallgatóknak van létrehozva EHA kód (.PTE nélkül) alapján adatbázis és nincs joguk újat létrehozni, ezért hibaüzenetet kapnak.

4 Mysql – egy kis elmélet…
Adatbázisok táblákból, mezőkből és adatokból épülnek fel. Ezeket úgy kell elképzelni, mint egymásba helyezhető dobozokat: táblában vannak a mezők, a mezőkben az adatok. Általában vannak elsődleges mezők, melyek kulcsként funkcionálnak és segítségükkel több táblát tudunk összekapcsolni. Példa: Adatbázisunknak van 2 táblája: kategoria és alkategoria néven. kategoria tábla mezői: id (egyedi azonosító, típusa: egész szám, automatikusan növekvő) nev (szöveges tartalom, típus: karakter) alkategoria tábla mezői: kat_id (típusa: egész szám) // kat_id tartalmazza a másik tábla id mezőjét, így össze tudjuk kötni a két táblát és adataikat.

5 Mysql – egy kis elmélet…
kategoria tábla adatai (id, nev): 1, Háziállatok 2, Vadállatok alkategoria tábla adatai (id, kat_id, nev): 1, 2, Tigris 2, 1, Nyúl 3, 1, Tyúk 4, 2, Zebra Egyszerű adatbázis felépítésnél felmerül a kérdés, hogy miért készítettünk 2 táblát? Bonyolultabb felépítés esetén sok kis tábla kezelése gyorsabb futást eredményez, mintha lenne 1 táblánk 50 mezővel.

6 Mysql – adattípusok Néhány fontosabb adattípus a Mysql-ben a teljesség igénye nélkül: INT – egész szám, hosszt nem kötelező megadni. Alapesetben 11 karakter. VARCHAR (hossz), bármilyen karaktert tárolhat, hossz megadása kötelező, maximum 255 karakter. CHAR (hossz ), bármilyen karaktert tárolhat, hossz megadása kötelező, használata rövid sztringek esetén javasolt, egyébként inkább varchar-t használj. TEXT , bármilyen karaktert tárolhat, hossz megadása nem kötelező, használata hosszú szövegek esetén javasolt. FLOAT – nem egész számok (Pl.: 3.13), hosszt nem kötelező megadni. DATE – dátumok tárolására szolgál. ÉÉÉÉ-HH-NN formában. DATETIME – dátum és idő tárolására szolgál. ÉÉÉÉ-HH-NN ÓÓ:PP:SS formában.

7 Mysql – tábla és mező létrehozása
<? …csatlakozás… $sql = "CREATE TABLE adatbazisnev.kategoria ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY , nev VARCHAR( 20 ) CHARACTER SET latin2 COLLATE latin2_hungarian_ci NOT NULL ) ENGINE = MYISAM "; mysql_query($sql) or die (mysql_error()); /* id néven létrehozunk egy INT típusú mezőt, aminek az alap értéke nem nulla. Beállítjuk, hogy elsődleges kulcs legyen és az értéke automatikusan növekedjen. A növekedés hatására nem lesz 2 azonos tartalmú sorunk. Nev mező típusa varchar és maximum 20 karakter hossz tárolódik. A karakter- készletet pedig magyar betűkészletre állítjuk.*/ $sql = "CREATE TABLE adatbazisnev.alkategoria ( kat_id INT NOT NULL , ?>

8 Mysql adatfelvitel Adatfelvitel:
INSERT INTO paranccsal lehet adatokat felvinni. $be = "insert into kategoria (id,nev) values (‘’, ‘megadott_szoveg’)"; mysql_query($be) or die(mysql_error()); $be2 = "insert into alkategoria values (‘’, ‘3’, ‘megadott_szoveg’)"; mysql_query($be2) or die(mysql_error()); Pl.: Az id értéke azért üres, mert automatikusan növekvő és kap értéket felvitelkor. Pl.: ha van ben ilyen sor, hogy 1, szöveg, akkor a következő sor id értéke automatikusan 2 lesz. A mezők felsorolása nem kötelező (második felvitel), de ha megadjuk, akkor a megadott values értékekkel azonos számú mezőt fel kell sorolnunk

9 Mysql adatlekérés Adat lekérés:
$be = "select * from tabla_neve where feltételek order by rendezés limit mettől,mennyit"; $bebe = mysql_query($be) or die(mysql_error()); A * paraméterrel az összes mezőt lekérjük. Ha pl * helyett beírnánk, hogy nev, akkor csak a nev mező tartalmát kérjük le. Több mező lekérésekor vesszővel soroljuk fel őket. A where nem kötelező, feltételeket lehet kötni a lekérdezéshez. Az order by záradékkal rendezett lekérdezést hajthatunk végre. Szintén elhagyható. Ha nincs megadva, akkor a kulcs alapján rendez és A-Z ill. 1-…. egyébkét a megadott mező értékei alapján rendez. Az order by desc segítségével lehet fordítottan rendezni. A limit-el lehet adott számú lekérést megszabni. Pl.: 0-> 5 db elemet akarunk lekérni, akkor limit 0,5. Szintén elhagyható rész.

10 Mysql adatlekérés Példa alapján: $sql = "select * from kategoria";
/* Néhány variáns: $sql = "select * from kategoria order by nev asc"; - nev mező szerint rendezve listázza az első 5 sort. $sql = "select * from kategoria where id>10"; - azokat listázza, ahol id értéke nagyobb, mint 10.*/ $lekert_sorok = mysql_query($sql) or die (mysql_error()); // ténylegesen végrehajtódik az sql lekérés if (mysql_num_rows($lekert_sorok)>0) { //a mysql_num_rows megszámolja a sikeresen lekért sorok számát, a feltétel teljesül, ha legalább 1 sor adat van ami a lekérésnek megfelel. while ($sorok = mysql_fetch_array($ lekert_sorok, MYSQL_ASSOC)) { //a mysql_fetch_array függvény a kapott eredményeket soronként lebontva, adja vissza. print ‘Név mező: ’.$sorok[‘nev'].'<br>'; /* a kívánt adatot a lekért sorokból (tömbök) a mező nevére hivatkozva érjük el. Mivel a while ciklus addig fut, amíg van adat, ezért a példa alapján az összes felvitt név mezőérték kiíródik.*/ }

11 Mysql where/feltételek
Sql utasításokban a where szócska után feltételeket használhatunk. Logikai kapcsolatok és operátorok használata megengedett. Pl.: $sql = "select * from kategoria where id=‘10’ or id=‘13’ "; //kategoria táblából lekér minden mezőt, ahol id értéke 10 VAGY 13. $sql = "select * from kategoria where id>‘10’ and id<‘13’ "; //kategoria táblából lekér minden mezőt, ahol id értéke nagyobb mint 10 és kisebb mint 13. LIKE: $sql = "select * from kategoria where nev like ‘%szöveg%’ "; A like parancs keresést eredményez a mező tartalmában. Jelen példa alapján azokat a sorokat kéri le, ahol nev mező tartalmában megtalálható a szöveg sztring. A % jel hatására találat lesz pl.: gggszövegkkk is, azaz szövegrészt keres. A % jelek elhagyhatóak.

12 Mysql módosítás-törlés
Adat módosítás: $be = „update tabla_neve set mező_neve=‘mire’, mező_neve2=‘mire’ where feltételek "; mysql_query($be) or die(mysql_error()); Pl.: $be = " update kategoria set nev=‘Valami szöveg’ where id=‘4’ "; A feltételek (where) alapján (4-es id-jű) a kívánt mező (nev) tartalma módosul. Feltétel nélkül minden sort módosított volna a script. Adattörlés: $be = „delete from tabla_neve where feltételek "; $be = „delete from kategoria where id=‘2’ ”; A feltételek alapján a kívánt tartalom (2. id-jű sor) törlésre kerül. Feltétel nélkül minden sort töröl a script.


Letölteni ppt "Tananyag: konzultáció"

Hasonló előadás


Google Hirdetések