120 likes | 278 Views
Php aktualija “SQL užklausų formavimas ir jų rezultatų apdorojimas Php kalbos priemonėmis ”. Darbą parengė : Airinė Palšytė VIV 4k, 1gr KF, VU 2014. Aktualija.
E N D
Phpaktualija“SQL užklausųformavimasirjųrezultatųapdorojimasPhpkalbospriemonėmis” Darbąparengė: Airinė Palšytė VIV 4k, 1gr KF, VU 2014
Aktualija Perduodantužklausųatrenkamusduomenisįtinklapius, sukuriamasautomatiškaikeičiamasjųtekstas, kuriameoperatyviaiatsispindiduomenųbazėjesaugomųduomenųpakeitimai. Šiaktualijabuvosukurta, norintaptartiduomenųbaziųkūrėjamsaktualų SQL užklausųformavimąirjųrezultatųapdorojimą PHP kalbospriemonėmis.
PHP skriptas Priešperduodant HTML dokumentusjuosišsirinkusiųinternetolankytojųnaršyklėms, serveryje PHP skriptusanalizuoja PHP procesoriusirvykdo visas juosenurodytaskomandas. Norintpapildyti HTML dokumentoaprašomątinklapįduomenųbazės (DB) duomenimis, PHP skriptereikiaaprašytitokiusveiksmus: • Jungtiessu DBVS sukūrimą; • Jungtiessusiejimąsukonkrečia DB; • Užklausąduomenųbazėjesaugomųduomenųatrankai; • Užklausosrezultatųperdavimąįnaršyklėslangą.
Jungtissuduomenųbaziųvaldymosistemomis (DBVS) Jungtįsu DBVS sukuriafunkcijamysql_connect, įkuriąkreipiamasitaip: Mysql_connect(“Serveriovardas”,”Vartotojovardas”,”Slaptažodis”) Reikiaatkreiptidėmesįį tai, kadvisišiosfunkcijosparametraiyraeilutėstipo – jųreikšmėsrašomos tarp kabučių. Funkcijosreikšmėyrasveikasisskaičius, kuris nurodojungtiesnumerį, o kaijosnepavykstasukurti, šireikšmėlyginuliui. KadangiPhpkalbojeloginėreikšmėfalse koduojamanuliu, o visikitisveikiejiskaičiaiinterpretuojamikaipreikšmėtrue, f-cijosmysql_connectgrąžinamąreikšmęgalimapanaudotitikrinant, arjungtįpavykosukurti.
Phpskriptokontrolė Phpskriptosujungtiessukūrimokontrolepvz.: <?php $db= mysql_connect(“localhost”,”Testas”,”savas”); //Jungtiessukūrimas if (!$db){ //Rezultatokontrolė echo “Prisijungtiprie DBVS MySQL nepavyko.”; // Pranešimasapienesėkmę exit; // Programosnutraukimas } Else Echo “Jungtissukurtasėkmingai.”; //Pranešimasapiesėkmę ?> Pavyzdyjenaudojamasserveriovardaslocalhostnurodo, kadjungtįkuriantisPhpprocesoriusyra tame pačiameserveryjekaipirDBVS programa.
Priskyrimasduomenųbazei Sukūrusjungti, reikiająpriskirtiduomenųbazei, atveriamaitvarkymui. Šįveiksmąaprašo f-cijamysql_select_db: mysql_select_db(“Taikomosiosbazėsvardas”) Užkreipinioįšią f-cijąPhpskriptuosejaugalimarašytiatvertos DB tvarkymoužklausųformavimofunkcijas. Kreipiniųįšias f-cijassintaksėtokia: Mysql_query(“SQL užklausa”, Taikomosiosbazėsjungtis)
Atranka Įtinklalapiusdažniausiaiperduodamipagalkonkrečiuspožymiusatrenkamiduomenųbaziųįrašaiarbajųfragmentai. TokiaiatrankainaudojamaužklausaSELECT: SELECT Laukųsąrašas FROM Lentelėsvardas [WHERE Atrankossąlyga]; Užklausosrezultatasyraįrašųrinkinys, kuris tenkinakomandojeįrašytąatrankossąlygą.
Atranka Atrinktuoseįrašuosebūnatikraitųduomenųšaltiniolentelėslaukųreiksmės, kuriųpavadinimaiišvardijamilaukųsąraše. Jeiguturibūtiatrenkamosvisųlaukųreikšmės, vietojšiosąrašorašomassimbolis *. Nesudėtingosatrankossąlygosaprašomossąryšiooperatoriais, kuriųvienasargumentasyraatrankainaudojamošaltiniolentelėslaukovardas. Praleidusneprivalomąatrankossąlygosaprašymą, rezultatųrinkinyjebūnavisųduomenųšaltinioeilučiųreikšmės. Tarkim, atrenkantišlentelėsKnygosįrašus, kuriuoselaukoKainareikšmėsmažesnėskaip 30, galimanaudotitokiąužklausą: SELECT * FROM Knygos WHERE Kaina< 30;
Atskyrimas Phpskriptuoseformuojantsudėtingasužklausas, jųtekstoaprašymąiršiotekstonurodymo f-cijojemysql_queryveiksmuspatoguatskirti. Tai daromapaskiriantužklausostekstąeilutėstipokintamajam, pvz.: $query = “SELECT * FROM Knygos WHERE Kaina < 30”; $result = mysql_query($query, $db); Funkcijamysql_queryužklausosrezultatuspatalpinaspecialiojevidinėjePhpstruktūroje, o funkcijosreikšmėgrąžinatikraišiosstruktūrosindeksą.
Atskyrimas Atskiriantiššiosstruktūrosatrinktųįrašųreikšmes, naudojamafunkcijamysql_fetch_array: mysql_fetch_array(Rezultatųrinkinioindeksas) Šiosfunkcijosgrąžinamasrezultatasyravienoargumentonurodomorinkinioįrašolaukųreikšmiųmasyvas. Pirmąkartątaikant f-cijąrezultatųrinkiniui, grąžinamasmasyvassupirmojojoįrašolaukųreikšmėmis. Kartojant f-ciją, perrenkamikitirinkinioįrašaiirgrąžinamosšiųįrašųlaukųreikšmės.
Atskyrimas Norintsėkmingaiperrinktivisąužklausosrezultatųrinkinį, reikiažinotijoįrašųskaičių, kurįgalimasužinotinaudojantfunkcijąmysql_num_rows: Mysql_num_rows(Rezultatųrinkinioindeksas); Atskirųlaukųreikšmėsirfunkcijosmysql_fetch_arraysukuriamomasyvoatskiriamosnaudojantužklausosduomenųšaltiniolentelėslaukųpavadinimus, kaipindeksus: Masyvovardas {Laukopavadinimas}
Naudotaliteratūra: • http://pixel.lt/sql-pagrindai.html • http://www.w3schools.com/php/php_mysql_intro.asp • www.wikipedia.com • http://www.w3schools.com/php/default.asp • http://193.219.81.76/~regis/2009/kf/php-mysql_sa_1.jpg