Porta shqipe   |  Mësime për PHP

Lidhja me skedarin me të dhëna

Vërejtje: Ky mësim është identik me mësimin për gjuhën ASP. Vetëm sintaksa e PHP-së është ndryshe këtu.

SQARIM PËR EMRIN: Skedari i të dhënave quhet në gjuhën shqipe me emra të ndryshëm tani, për shembull databezi, databejzi, databazi, databasi dhe disa emra të tjerë të pakuptimtë shqip. Ne e quajmë këtë skedar tek Porta ose "skedar me të dhëna" ose "bazë e të dhënave", nga data = e dhënë dhe base = bazë.

Në këtë mësim tregohet lidhja me skedarin e të dhënave në formatin MySQL. Në këtë skedar vendosen të dhënat në tabelë. Kjo tabelë ka shtylla me emra. Këto të dhëna tregohen në faqe, sipas kërkesës sonë.

Tabela e këtij mësimi ka tre shtylla me këta emra:

  1. numri_id
  2. emri
  3. mbiemri

Kështu duket kjo tabelë vizualisht:

numri_id emri mbiemri
1 Drenusha Gashi
2 Bardh Bytyqi
3 Edon Krasniqi
4 Drenush Kelmendi
5 Edona Morina
6 Bardha Berisha

Në MySQL krijohet tabela me kod me këtë komandë në gjuhën SQL (theksohet: sikuëll, nga germat anglisht Es, Kju, Ell):

CREATE TABLE IF NOT EXISTS `anëtarët` (
`numri_id` smallint(6) NOT NULL auto_increment,
`emri` varchar(250) NOT NULL default '',
`mbiemri` varchar(250) NOT NULL default '',
PRIMARY KEY (`numri_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Sqarim

Kodi Sqarimi
CREATE TABLE IF NOT EXISTS `anëtarët`

Krijo tabelën nëse nuk ekziston me emrin anëtarët.

Tek MySQL mund të përdoren pa asnjë pengesë shkronjat shqipe për emër të tabelës.

`numri_id` smallint(6) NOT NULL auto_increment,

Krijo shtyllën me emrin `numri_id`, me numrin e plotë të vogël (small integer) me gjashtë shifra (000000 deri 999999), jo zero, me rritje automatike të numrit.

Rritja automatike do të thotë se kur shtohet një e dhënë e re numri rritet automatikisht. Për shembull nëse ekzistojnë pesë të dhëna, e dhëna e re e ka numrin gjashtë. Rritja e numrit në këtë mënyrë na duhet sepse këtë numër do ta përdorim ne për identifikim të të gjitha të dhënave të shtuar për atë rresht në tabelë.

`emri` varchar(250) NOT NULL default '',

Krijo fushën me emrin `emri` me madhësi deri 250 shkronja.

Për të dhëna me më shumë shkronja kjo fushë nuk është e përshtatshme. Për shembull për përmbajtje të gjatë me tekst mund të përdorim TEXT (me hapërsirë ~64kb) ose LONGTEXT (me hapësirë ~4GB).

PRIMARY KEY (`numri_id`) Çelësi kryesor është shtylla e krijuar me emrin e dhënë nga ne `numri_id` (numri identifikues).
ENGINE=MyISAM

Lloji i makinës për ruajtje është MyISAM.

MyISAM është përdorur deri me versionin MySQL 5.5. Tani përdoret makina InnoDB. Përparësitë e makinës InnoDB janë se në rast të problemeve me bazë të të dhënave nuk ka nevojë që të skanohen të gjitha të dhënat në tabelën e prishur, por vetëm të dhënat e regjistruara në ditar.

CHARSET=latin1 CHARSET është shkurtesë për Character Set. Këtu caktohet kodi i germave për të dhënat e shtuara. Tek MySQL kodi latin1 është kod për të gjitha shkronjat e gjuhëve Indo Europiane, pra edhe gjuhën shqipe si anëtare e kësaj familje.

Pamja e tabelës tek PHP MyAdmin


kliko këtu për zmadhim

Pas krijimit i fusim të dhënat në tabelë kështu:

INSERT INTO `anëtarët` (`numri_id`, `emri`, `mbiemri`) VALUES
(1, 'Drenusha', 'Gashi'),
(2, 'Bardha', 'Bytyqi'),
(3, 'Edon', 'Krasniqi'),
(4, 'Drenush', 'Kelmendi'),
(5, 'Edona', 'Morina'),
(6, 'Bardh', 'Berisha');

Dhe kështu e bëjmë ne lidhjen me bazën tonë të dhënave në MySQL (lexo sqarimin në fund)

emrat.php

<?php
$furnizuesi = "serveri.mysql.portashqipe.com";
$përdoruesi = "studenti";
$fjalëkalimi = "dituria";
$skedari = "mesime_nga_porta";
$tabela = "anëtarët";

mysql_connect ($furnizuesi, $përdoruesi, $fjalëkalimi);
$rezultati = mysql_db_query ($skedari, "select * from $tabela");

while ($rendi = mysql_fetch_assoc ($rezultati))
{
echo $rendi ["numri_id"];
echo " ";
echo $rendi ["emri"];
echo " ";
echo $rendi ["mbiemri"];
echo "<br>";
}

mysql_free_result ($rezultati);

?>

VËREJTJE PËR FILLESTARË: Të gjitha të dhënat për lidhje me server në këtë mësim nuk ekzistojnë. Ato janë të trilluara. Ju duhet të përdorni të dhënat e serverit tuaj dhe me emrin tuaj të përdoruesit.

Kjo kërkesë i tregon kështu të dhënat në faqe:

emrat.php
1 Drenusha Gashi
2 Bardha Bytyqi
3 Edon Krasniqi
4 Drenush Kelmendi
5 Edona Morina
6 Bardh Berisha

Sqarim i kodit për tregim të të dhënave

Kodi Sqarimi
$... emri i ndryshores, funksion i cili merr përsipër atë që është pas barazimit
mysql_connect funksion për marrjen e lidhjes me skedarin me të dhëna në MySQL
$rezultati emri i ndryshores sonë për tregimin e rezultatit
select * from $tabela zgjedh të gjitha (shenja *) nga tabela (shiko emrin e tabelës tek kjo ndryshore)
mysql_db_query funksion për kërkesën e tregimit të të dhënave nga skedari
while funksion i cili fillon tregimin e të gjitha fushave nga skedari, me përsëritje
mysql_fetch_assoc funksion i cili fillon tregimin prej fushës së parë e më tutje
$rendi emër i funksionit i krijuar nga ne i cili e tregon rezultatin e funksionit të kërkesës
echo do të thotë trego në faqe
mysql_free_result liro kujtesën e serverit, nuk ka nevojë që të bëj më ai asgjë tani

Funksioni while i zgjedh të dhënat duke përsëritur të njëjtin veprim deri në fund të tabelës. Me funksionin echo e tregojmë fushën me emrin në mes thonjëzave.

Në vend që të rendisim rreshtat veç e veç, mund të përdorim pikën për lidhje të pjesëve. Për shembull kështu:

echo $rendi ["numri_id"] . " " . $rendi ["emri"] . " " . $rendi ["mbiemri"] . "<br>" ;

Përparësitë e bazës së të dhënave në krahasim me të dhënat statike

Përparësi e të dhënava nga baza është se tani kemi mundësi që të kërkojmë tregimin e shënimeve sipas dëshirës sonë dhe jo ashtu sikur që janë vendosur në tabelë. Për shembull nëse dëshirojmë që renditja të bëhet sipas emrit atëherë e bëjmë këtë me funksionin order by. Pasi që përmbajtja është vetëm tekst mund të tregojmë miliona të dhëna brenda një sekonde nga serveri ynë.

$rezultati = mysql_db_query ($skedari, "SELECT * FROM $tabela ORDER BY emri");

me_renditje_sipas_emrit.php
6 Bardh Berisha
2 Bardha Bytyqi
4 Drenush Kelmendi
1 Drenusha Gashi
3 Edon Krasniqi
5 Edona Morina

Përpos tregimit të të dhënave kështu kemi mundësi që të kërkojmë vetëm të dhënat në të cilat jemi të interesuar.

 

© Porta Shqipe - 2010 - Tė gjitha tė drejtat e rezervuara

Tabela e krijuar me MyAdmin

MyAdmin mundėson marrjen e lidhjes me bazėn e tė dhėnave nė rrjet. Ky program pėrdoret kryesisht edhe nga furnizuesit e rrjetit tė internetit.