1 / 20

Aksesimi i bazes se te dhenave MySQL nepermjet PHP-se

Aksesimi i bazes se te dhenave MySQL nepermjet PHP-se. Programim ne Web Leksion 9. Arkitektura e nje baze te dhenash ne web. Veprimi baze i nje web serveri tregohet ne figure. Sistemi perbehet nga dy objekte: nje Web server dhe nje Web browser.

vicki
Télécharger la présentation

Aksesimi i bazes se te dhenave MySQL nepermjet PHP-se

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aksesimi i bazes se te dhenave MySQL nepermjet PHP-se Programim ne Web Leksion 9 Iralda Mitro

  2. Arkitektura e nje baze te dhenash ne web • Veprimi baze i nje web serveri tregohet ne figure. • Sistemi perbehet nga dy objekte: nje Web server dhe nje Web browser. • Ndermjet tyre kerkohet nje linje komunikimi: Nje web browser ben nje kerkese ne web server dhe web serveri kthen pergjigjen. • Kjo arkitekture perdoret per shperndarjen e faqeve statike. • Ndersa per web sitet me nje baze te dhenash, arkitektura eshte pak me komplekse: Iralda Mitro

  3. Arkitektura e nje baze te dhenash ne web Nje transaksion tipik i bazes se te dhenave web perbehet nga etapat e meposhtme: • Web browseri i nje perdoruesi dergon nje kerkese HTTP per nje faqe web te caktuar. Psh: mund te beje nje kerkim per te gjithe librat ne bazen e te dhenave Book-O-Rama te shkruar nga Laura Thomson, duke perdorur nje forme HTML. Faqja e rezultateve te kerkimit quhet results.php • Web serveri merr kerkesen per results.php, merr skedarin dhe ia dergon ate motorit te PHP-se per procesim. Iralda Mitro

  4. Arkitektura e nje baze te dhenash ne web • Motori PHP fillon duke analizuar (parsing) skriptin. Brenda skriptit eshte nje komande per t’u lidhur me bazen e te dhenave dhe per te ekzekutuar nje query (kryen kerkimin per librat). PHP hap nje lidhje me serverin MySQL dhe i dergon query-n e duhur. • Serveri MySQL e merr query-n e bazes se te dhenave dhe e perpunon ate, dhe dergon rezultatet, nje liste librash, ne motorin e PHP-se • Motori i PHP-se perfundon ekzekutimin e skriptit, i cili zakonisht do te perfshije formatimin e rezultateve te query-t, ne menyre te kendshme ne HTML. Ai me pas i kthen rezultatet HTML ne Web server. • Web Serveri e kalon HTML-ne ne browser, ku perdoruesi mund te shohe listen e librave qe ka kerkuar. Iralda Mitro

  5. Krijimi i nje lidhjeje me bazen e te dhenave • Per t’u lidhur me serverin MySQL, perdorim kete rresht: $db = mysql_pconnect(‘localhost’, ‘bookrama’, ‘bookrama’); • Sintaksa e pergjithshme e ketij funksioni eshte: int mysql_pconnect ([string host [:port] [:/socketpath]] , [string user] , [string password]); • Ky funksion kthen nje identifikues link per ne bazen e te dhenave MySQL, nese ka sukses, ose kthen false nese deshton. Kjo mund te kontrollohet nepermjet kodit: If (!$db) { echo “Error connecting”; exit; } Iralda Mitro

  6. Krijimi i nje lidhjeje me bazen e te dhenave • Nje funksion tjeter qe ben pothuajse te njejten gje si funksioni mysql_pconnect eshte funksioni mysql_connect(). • Ndryshimi eshte se mysql_pconnect kthen nje lidhje te qendrueshme me bazen e te dhenave. • Nje lidhje normale me bazen e te dhenave do te mbyllet kur skripti e perfundon ekzektutimin ose kur skripti therret funksionin mysql_close(). • Nje lidhje e qendrueshme mbetet e hapur pasi perfundon ekzekutimi i skriptit dhe nuk mund te mbyllet me funksionin mysql_close(). • Perse duhet kjo? • Lidhja me nje baze te dhenash kerkon njefare kohe. Kur thirret mysql_connect(), perpara se te perpiqet te lidhet me bazen e te dhenave, ai do te kerkoje automatikisht nese ka ndonje lidhje te qendrueshme qe eshte hapur qe me pare. Nese po, si do te perdore ate lidhje ne vend qe te hape nje lidhje tjeter. Kjo kursen kohen dhe ngarkesen e serverit. Iralda Mitro

  7. Zgjedhja e bazes se te dhenave qe do perdorim • Ai do te perpiqet te perdore bazen e te dhenave te quajtur database. • Mund edhe te shtoni ne menyre opsionale, linkun e bazes se te dhenave, mbi te cilin doni ta kryeni kete veprim (ne kete rast $db) • Nese nuk e specifikoni kete, do te perdoret linku qe eshte hapur i fundit. • Nese nuk keni nje link te hapur, do te hapet linku default, sikur te kishit thirrur mysql_connect(). Iralda Mitro

  8. Ndertimi i query-ve ne bazen e te dhenave • Sintaksa e mysql_query eshte: • Mund te perdorni edhe mysql_db_query, qe ka kete sintakse: • Kjo eshte si nje kombinim i mysql_select_db() me mysql_query() • Te dy keto funksione kthejne nje identifikues rezultati (qe na lejon qe te marrim rezultatet e query-t) kur ka sukses dhe false ne te kundert. Kete identifikues duhet ta ruajme ne nje variabel (si psh ne $result), ne menyre qe ta perdorim. Iralda Mitro

  9. Marrja e rezultateve te query-t • Ka nje bashkesi funksionesh per te copetuar rezultatet nga identifikuesi i rezultatit ne menyra te ndryshme. • Identifikuesi i rezultatit eshte çelesi per te aksesuar zero, nje apo me shume rreshtat qe kthehen nga query. • Ne shembullin tone kemi perdorur dy prej tyre: mysql_numrows() dhe mysql_fetch_array() • mysql_numrows() na jep numrin e rreshtave qe kthehen nga query. Duhet t’i kalojme si parameter identifikuesin e rezultatit : $num_results = mysql_numrows($result); Kjo na duhet, nese duam te shfaqim rezultatet: for ($i=0; $i<$num_results; $i++) { // process results } Iralda Mitro

  10. Marrja e rezultateve te query-t • Ne çdo iteracion te ketij cikli, therrasim mysql_fetch_array. Ky cikel nuk do te ekzekutohet nese nuk kthehet asnje rresht. • Ky funksion merr çdo rresht te bashkesise se rezultateve dhe e kthen rreshtin si nje vektor te shoqeruar, ku çdo emer atributi sherben si çeles: $row = mysql_fetch_array($result); • Pasi marrim vektorin e shoqeruar $row, mund te kapim çdo fushe dhe ta afishojme ate siç duhet: echo “<br>ISBN: ”; echo stripslashes($row[“isbn”]); //http://php.net/manual/en/function.stripslashes.php IraldaMitro

  11. Marrja e rezultateve te query-t • Ka disa menyra per te marre rezultatet nga nje identifikues rezultati. • Ne vend te nje vektori te shoqeruar, mund t’i marrim rezultatet si nje vektor i numeruar me ane te mysql_fetch_row(): $row = mysql_fetch_row($result); • Vlerat e atributeve do te listohen ne secilen nga vlerat e vektorit $row[0], $row[1], e keshtu me radhe. Iralda Mitro

  12. Shtimi i informacioneve te reja ne bazen e te dhenave • Duhet te ndiqen keto hapa: • behet lidhja me db • dergohet nje query • kontrollohet rezultati • Ne kete rast query do te jete INSERT. Iralda Mitro

  13. Shtimi i informacioneve te reja ne DB Iralda Mitro

  14. Shtimi i informacioneve te reja ne DB Iralda Mitro

  15. Shtimi i informacioneve te reja ne DB Iralda Mitro

  16. Shtimi i informacioneve te reja ne DB Nese skripti perfundon me sukses, pra realizohet shtimi i rreshtit te ri ne Db, atehere do te afishote faqja e meposhtme Iralda Mitro

  17. Shtimi i informacioneve te reja ne DB • Nje ndryshim i rendesishem ndermjet INSERT dhe SELECT eshte perdorimi i • mysql_affected_rows () • Ne skriptin e meparshem perdorem mysql_num_rows() per te percaktuar se sa rreshta jane kthyer nga select. • Kur shkruajme query qe e ndryshojne DB si INSERT, DELETE, apo UPDATE, duhet te perdorim mysql_affected_rows(). Iralda Mitro

  18. Lirimi i Burimeve • Nese keni probleme me memorien gjate ekzekutimit te skriptit, mund t’ju duhet te perdorni mysql_free_result(), qe ka sintakse si me poshte: • Mund ta therrisni me nje identifikues rezultati, si vijon: • Kjo ka efektin e lirimit te memories se perdorur per te ruajtur rezultatin. Natyrisht nuk duhet ta therrisni ate derisa te keni mbaruar punen me nje bashkesi rezultatesh (resultset) Iralda Mitro

  19. Krijimi dhe fshirja e bazave te te dhenave • Te dy keto funksione marrin si parametra nje emer databaze dhe nje lidhje opsionale. • Nese nuk jepet nje lidhje, do te perdoret ajo qe eshte hapur e fundit. • Ato do te perpiqen qe te krijojne dhe te fshijne databazat e dhena. • Te dy funksionet kthejne true nese kane sukses dhe false ne te kundert. Iralda Mitro

  20. <?php function dbConn() { $db = mysql_connect("localhost","root",""); if (!$db) { echo "Nuk mund te lidhet me DB"; exit; } else { echo "Lidhja me DB u realizua me sukses<br>"; } mysql_select_db("elearning"); } function afishim() { $query = "select * from botime"; $result = mysql_query($query); $num_results = mysql_numrows($result); for ($i=0; $i<$num_results; $i++) { $row = mysql_fetch_array($result); echo "Titulli: $row[titull], Pershkrimi: $row[pershkrim] "; echo "<br>"; } } dbConn(); afishim(); ?> Iralda Mitro

More Related