Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Administrarea baze de date Avalon folosind pagini web

Informatica


Universitatea "AUREL VLAICU" Arad

Facultatea de stiinte Economice



Studii aprofundate - Master: Informatica de gestiune

Lucrare de disertatie

Administrarea baze de date Avalon

folosind pagini web

Coordonator,

Prof. Dr. Ing. Mariana Nagy Student,

Ing. Stelian Muscan

- martie.2006 -

CUPRINS

Cap I. Utilizarea Html pentru gestionarea web a bazei de date Avalon 

1.Introducere în HTML

2.Elemente folosite în crearea paginilor

1.Folosirea de referinte (legaturi) 

2.Folosirea de cadre (frame-uri)

3.Folosirea de tabele

4.Folosirea de imagini

5.Folosirea de stiluri

6.Folosirea JavaScript

3.Structura si moduri de folosire a paginilor

1.Pagina "Trafic"

2.Pagina "Trafic" - detaliu

3.Pagina "Curs Valutar"

4.Pagina "Categorii"

5.Pagina "Producatori"

6.Pagina "Produse"

7.Pagina "Produse" - detaliu

8.Pagina "Produse" - introducere poze

Cap II. Baze de date Avalon

1.Introducere în MySQL

2.Crearea bazei de date si a tabelelor

3.Interogarea bazei de date

1.SELECT

2.UPDATE

3.DELETE

4.INSERT

5.SELECT - cu relatii între tabele 

Cap III. Utilizarea php pentru realizarea aplicatiei

1.Introducere în PHP

2.Conectarea la baza de date

3.Elemente folosite în crearea paginilor dinamice

1.Variabile

2.Instructiunea IF

3.Cicluri si vectori

4.Formulare - constructie si trimiterea datelor

5.Formulare - obtinerea datelor

Concluzii

Bibliografie

Cap I. Utilizarea Html pentru gestionarea web a bazei de date Avalon

Introducere n HTML

HTML este prescurtarea de la HyperText Markup Language si este limbajul în care sunt scrise paginile World Wide Web (WWW). Termenii "document HTML" si "pagina Web" sunt sinonime. Hypertext reprezinta posibilitatea de a crea legaturi (în engleza-link) între diferite documente. Markup Language înseamna "limbaj de etichetare".

Paginile web sunt fisiere cu extensia .html sau .htm care se afla, de obicei, pe serverele de internet, dar care se pot afla si pe calculatorul utilizatorului.

Este important de cunoscut ca HTML nu este un limbaj de programare, totusi varianta de compromis care se va folosi în aceasta lucrare la crearea paginilor web dinamice este folosirea linbajului de programare PHP, despre acesta se va vorbi în capitolul III.

În varianta sa cea mai simpla, un document HTML reprezinta o cantitate de informatie text-uala si tag-uri care explica browser-ului cum sa vizualizeze acest text pe ecran. Tag în engleza este "eticheta". Pentru a le deosebi de text, tag-urile sunt incluse în paranteze speciale, formate din semnele "mai mic" si "mai mare": <aceasta_e_tag>. Tag-ul de închidere se deosebeste de cel de deschidere prin bara de împartire "/" introdus în tag dupa semnul mai mi 10410t192k c "<": </aceasta_e_tag>.

O pagina web poate contine: text, imagini, fisiere audio, fisiere video.

Un fisier html se poate realiza: manual, scriind tag dupa tag în Notepad sau cu ajutorul editoarelor HTML precum Homesite, Adobe Golive, Microsoft Frontpage, Macromedia Dreamweaver (aplicatia cea mai apreciata de profesionisti), CoffeeCup HTML Editor, Netscape Composer (recomandat doar începatorilor), NoteTab Light sau 1st Page 2000. Ultimele trei sunt distribuite freeware (gratuit). Dealtfel, de pe site-urile de download se pot descarca un mare numar de editoare HTML, unele în regim freeware, altele în regim shareware.

Paginile web se vizualizeaza în browsere, care sunt niste programe de vizitare, cele mai populare browsere sunt: Netscape Navigator, care a cunoscut mai multe versiuni, cele mai reusite fiind 4.75 si 4.76 care aveau, totusi, defectul ca nu suportau diacriticele. Acestora le-a urmat versiunea 6.0 care suporta diacriticele, Microsoft Internet Explorer, care a ajuns la versiunea 6.2. În 2001, a aparut browserul Opera, deocamdata putin folosit. Unii folosesc Lynx care, fiind un browser negrafic, nu recunoaste imaginile, ceea ce duce la o încarcare mult mai rapida a textului. Informatii suplimentare despre browsere gasiti la adresa www.browserwatch.com

Orice browser prezinta, în partea de sus, o fereastra îngusta în care se tasteaza adresa paginii web cautate. Un exemplu de adresa ar fi: https://www.aval.ro sau https://www.aval.ro/index.php

Dupa tastarea adresei si apasarea tastei "Enter", browserul îi trimite serverului aval.ro cererea de a i se furniza o pagina web. În prima varianta, serverul trimite pagina sa proprie. În a doua varianta, trimite pagina index.php a sitului pe care îl gazduieste.

În mod implicit, la accesarea unui site se încarca fisierul index.html. Nestiind ce sistem de operare e instalat pe serverul pe care intentioneaza sa faca upload-ul site-ului propriu, unii webdesigneri salveaza fisierul index.html si ca index.htm, index.php, default.htm, default.html. Dupa care fac upload-ul tuturor acestor fisiere, urmând ca serverul sa furnizeze clientilor, la accesarea sitului, unul dintre aceste fisiere.

Orice document HTML începe cu notatia <html> si se termina cu notatia </html>.

Între cele doua marcaje <html> si </html> se vor introduce doua sectiuni:

-sectiunea de antet <head>...</head> si

-corpul documentului <body>...</body>. Blocul <body>...</body> cuprinde continutul propriu-zis al paginii HTML, adica ceea ce va fi afisat în fereastra browser-ului.

O eticheta poate fi scrisa atât cu litere mici, cât si cu litere mari. Adica <HTML> = <HtmL> = <html>. Caracterele "spatiu" si "CR/LF" ce apar între etichete sunt ignorate de catre browser. Deci un document HTML ar fi ceva de genul acesta:

<html>

<head></head>

  <body>

  </body>

</html>

 


2.Elemente folosite în crearea paginilor

1.Folosirea de referinte (legaturi)

Legaturile (link-urile) reprezinta partea cea mai importanta a unei pagini Web pentru ca ele transforma un text obisnuit în hipertext sau hiperlegatura, care premite trecerea rapida de la o informatie aflata pe un anumit server la alta informatie memorata pe un alt server aflat oriunde în lume. Legaturile sunt zone active într-o pagina Web, adica zone de pe ecran sensibile la apasarea butonului stâng al mouse-ului.

Iata câteva exemple de referinte folosite:

<table width="920" style="font-family:Verdana; font-size:12px">

<tr valign="top">

...

<td>

<a href="currency.php" target="BottomFrame">Curs valutar</a>

</td>

<td>

...

<td>

<a href="drivers.php" target="BottomFrame">Drivere</a>

</td>

<td width="180" align="right"><em>IP:</em></td>

<td width="145"><em>&nbsp;<? echo $IP; ?></em></td>

</tr>

</table>

 


2.Folosirea de cadre (frame-uri)

Ferestrele sau (cadrele) ne permit sa definim în fereastra browserului subferestre în care sa fie încarcate documente HTML diferite. Ferestrele sunt definite într-un fisier HTML special, în care blocul <body>...</body> este înlocuit de blocul <frameset>...</frameset>.

În interiorul acestui bloc, fiecare cadru este introdus prin eticheta <frame>.

Un atribut obligatoriu al etichetei <frame> este src, care primeste ca valoare adresa URL a documentului HTML care va fi încarcat în acel frame. Definirea cadrelor se face prin împartirea ferestrelor (si a subferestrelor) în linii si coloane: împartirea unei ferestre într-un numar de subferestre de tip coloana se face cu ajutorul atributului cols al etichetei <frameset> ce descrie acea fereastra; împartirea unei ferestre într-un numar de subferestre de tip linie se face cu ajutorul atributului rows al etichetei <frameset> ce descrie acea fereastra; valoare atributelor cols si rows este o lista de elemente separate prin virgula, care descriu modul în care se face împartirea.

În cazul nostru s-au folosit doua cadre împartite astfel: unul sus, iar celelalt jos;

<html>

<head>

<title>AVALON - Administrare</title>

</head>

<frameset rows="26,*" cols="1" framespacing="1"

frameborder="no" border="1" bordercolor="#FFFFFF">

<frame src="admin_top.php" name="TopFrame" scrolling="no" noresize >

<frame src="admin_bottom.php" name="BottomFrame" scrolling="yes" >

</frameset>

<noframes>

<body>

</body>

</noframes>

</html>

 


3.Folosirea de tabele

Tabelele ne permit sa cream o retea dreptunghiulara de domenii, fiecare domeniu având propriile optiuni pentru culoarea fondului, culoarea textului, alinierea textului etc.

Pentru a insera un tabel se folosesc etichetele corespondente <table>...</table>. Un tabel este format din rânduri. Pentru a insera un rând într-un tabel se folosesc etichetele <tr>...</tr> ( de la " table row "= rand de tabel ). Folosirea etichetei de sfârsit </tr> este optionala. Un rând este format din mai multe celule ce contin date. O celula de date se introduce cu eticheta <td>..</td>.

Tabelele se pot folosi ca atare si/sau pentru a controla mult mai bine aranjarea în pagina a unor elemente (folosind tabele fara chenar).

Culoarea de fond se stabileste cu ajutorul atributului bgcolor, care poate fi atasat întregului tabel prin eticheta <table>, unei linii prin eticheta <tr> sau celule de date prin eticheta <td>. Valorile pe care le poate primi bgcolor sunt cele cunoscute pentru o culoare.

Daca în tabel sunt definite mai multe atribute bgcolor, atunci prioritatea este urmatoarea: <td>, <tr>, <table> (cu prioritate cea mai mica).

<table id="tabel" width="452" border="0" cellpadding="0"

cellspacing="4" style="font-family:Verdana; font-size:14px;">

<tr bgcolor="#F3E9DE">

<td width="240" bgcolor="#ECDCCA">Introduceti cursul EURO

</td>

<td width="200" bgcolor="#EFE2D3"><input name="v_euro"

type="text" value="<? echo $euro ?>" size="10" class="text">

leu nou

</td>

</tr>

<tr bgcolor="#F3E9DE">

<td bgcolor="#ECDCCA">&nbsp;Introduceti cursul USD:

</td>

<td bgcolor="#EFE2D3"><input name="v_usd" type="text"

value="<? echo $usd ?>" size="10" class="text">

leu nou

</td>

</tr>

...

</table>

 


4.Folosirea de imagini

Introducerea de imagini în paginile web este des întâlnita, fiind folosita ca si fundal, ca si link, dar si ca imagine propriu-zisa.

Imaginile sunt stocate în fisiere cu diverse formate. Formatele acceptate de browsere pentru fisierele imagine sunt:

-GIF (Graphics Interchange Format) cu extensia .gif;

-JPEG (Joint Photographic Experts Group) cu extensia .jpeg sau .jpg;

-XPM (X PixMap) cu extensia .xmp;

-XBM (X BitMap) cu extensia .xbm;

-BMP (BitMap) cu extensia .bmp (numai cu Internet Explorer);

-TIFF (Tagged Image File Format) cu extensia .tif sau .tiff;

Cele mai raspândite formate sunt GIF(8biti pentru o culoare, 256 culori posibile) si JPEG (24biti pentru o culoare, 16777216 de culori posibile).

Adresa URL a unei imagini URL ("Uniform Resourse Locator" = identificator unic al resursei) este un standard folosit în identificarea unica a unei resurse în Internet.

Toate imaginile cu care vom lucra vor avea adresa URL exprimata în functie de directorul ce contine documentul HTML care face referire la imagine.

Pentru a insera o imagine într-o pagina, se utilizeaza eticheta <img> (de la "image"=imagine). Pentru a putea identifica imaginea care va fi inserata, se utilizeaza un atribut al etichetei <img> si anume src (de la "source"=sursa). Daca imaginea se afla în acelasi director cu fisierul HTML care face referire la imagine, atunci adresa URL a imaginii este formata numai din numele imaginii, inclusiv extensia.

<tr>

<td align="center">

<a href="currency.php?s_idx=<? echo $cr_id[$i] ?>">

<img src="del.gif" border="0" alt="Sterge inregistrarea!" >

</a>&nbsp;

<a href="currency.php?s_idv=<? echo $cr_id[$i] ?>">

<img src="rev.gif" border="0" alt="Inregistrarea devine vizibila!">

</a>

</td>

<td align="right"><? echo $cr_wdate[$i] ?>&nbsp;</td>

<td align="right"><? echo $cr_euro[$i] ?>&nbsp;</td>

<td align="right"><? echo $cr_usd[$i] ?>&nbsp;</td>

<td>&nbsp;<? echo $cr_banca[$i] ?></td>

<td>&nbsp;<? echo $cr_added[$i] ?></td>

</tr>

 


5.Folosirea de stiluri

Modelele de stiluri pot fi aplicate în mai multe moduri:

a)      intern: atributele sunt specificate în interiorul marcajului de deschidere al fiecarei instructiuni; este cel mai neeconomic mod.

b)      specificate în antetul fisierului: specificam la începutul unui fisier diverse atribute pentru mai multe stiluri de text; acele stiluri le putem folosi de mai multe ori în corpul aceluiasi fisier fara a mai specifica si atributele.

c)      extern: atributele pentru diverse stiluri sunt specificate într-un fisier de tip text, dar cu extensia .css. Este modul cel mai recomandat, mai ales pentru site-uri mari.

Iata un exemplu de stil folosind modelul b) si anume stilul specificat în antetul fisierului:

<html>

<head>

<title>CURRENCY</title>

<style type="text/css">

<!--

a:link

a:visited

a:hover

a:active

-->

</style>

<link type="text/css" rel="stylesheet" href="styles.css">

</head>

 


6.Folosirea JavaScript

Javascript este un limbaj de programare simplu, de tip script, pentru definirea comportamentului elementelor dintr-o pagina Web. Nu este acelasi lucru cu mult mai complexul limbaj de programare Java.

Javascript poate specifica, în mod obisnuit în doar câteva rânduri, raspunsurile la actiuni sau evenimente cum ar fi deschiderea unei pagini, deplasarea mouse-ului într-un anumit punct sau stergerea unui anumit câmp dintr-un formular.

<tr bgcolor="#F3E9DE">

<td bgcolor="#ECDCCA">

&nbsp;

</td>

<td align="right" bgcolor="#EFE2D3">

<input name="submit" type="submit" value="Introducere"

onClick="return confirm('Doriti introducerea datelor?')"

class="button">&nbsp;

</td>

</tr>

 


3.Structura si moduri de folosire a paginilor

Toate paginile de administrare se regasesc în admin.php. Acesta pagina la rândul ei e formata din doua frame-uri care au ca sursa: admin_top.php si admin_bottom.php.

Navigarea printre paginile de administrare se face prin link-urile situate în frame-ul top, de sus.

1.Pagina "Trafic"

Acesta este pagina în care se poate urmari de catre administrator numarul de vizitatori unici si numarul de afisari a acestora, defalcat pe zile, cât si numarul total de vizitatori si afisari.

 

2.Pagina "Trafic" - detaliu

Daca se da un click pe unul din link-urile din coloana "Data" din pagina trafic, serverul va afisa acea data detaliat cu urmatoarele informatii: paginile accesate, IP-ul si data vizitarii. În cazul nostru am dat click pe Duminica, 05-03-2006 si a rezultat urmatoarea pagina:

Din lista afisata rezulta urmatoarele concluzii:

-Site-ul a fost vizitat de 3 IP-uri:

86.125.209.195, 86.125.209.195 si 86.125.200.194;

-IP-ul 86.125.200.194 a accesat pagina index.php (pagina default) de 3 ori

la orele: 14:23:48, 14:28:33 si 14:28:59.

3.Pagina "Curs Valutar"

În acesta pagina se pot efectua urmatoarele operatii:

-indroducerea unui curs valutar nou, EURO si USD, si banca aferenta

-vizualizarea cursurilor valutare introduse

-stergerea oricarui curs valutar introdus

-anularea unei anumite stergeri (accidentale)

Precizari

În realitate câmpul sters nu este sters permanent în baza de date, ci el este marcat în baza de date ca vizibil=0, iar în momentul anularii stergerii el redevine vizibil vizibil=1.

Câmpurile marcate ca sterse nu apar în lista decât atunci când se da click pe link-ul Toate, din capul de tabel.

4.Pagina "Categorii"

În acesta pagina se pot efectua urmatoarele operatii:

-introducerea unei categorii sau subcategorii noi,

-vizualizarea categoriilor introduse,

-modificarea oricarei categorii introduse,

-stergerea oricarei categorii introduse,

-anularea unei anumite stergeri (accidentale)

Precizari

În realitate câmpul sters nu este sters permanent în baza de date, ci el este marcat în baza de date ca vizibil=0, iar în momentul anularii stergerii el redevine vizibil vizibil=1.

Cel mai important câmp este câmpul Sortare de unde se defineste ordinea de aparitie a categoriilor si subcategoriilor din meniul folosit în pagina comerciala.

5.Pagina "Producatori"

În aceasta pagina se pot efectua urmatoarele operatii:

-introducerea unui producator nou,

-vizualizarea producatorilor introdusi,

-modificarea oricarui producator introdus,

-stergerea oricarui producator introdus

-anularea unei anumite stergeri (accidentale)

Precizari

În realitate câmpul sters nu este sters permanent în baza de date, ci el este marcat în baza de date ca vizibil=0, iar în momentul anularii stergerii el redevine vizibil vizibil=1.

Aceasta pagina, cât si cea dinaintea ei, adica pagina categorii si pagina producatori sunt foarte importante si mai ales e important ca valorile sa fie introduse corect pentru ca urmatoarea pagina si anume pagina produse este în relatie de dependenta de cele doua.

6.Pagina "Produse"

Aceasta pagina este un cuprins al tuturor produselor introduse, sortate dupa categorie si subcategorie. Deasemenea ne mai sunt furnizate doua informatii în plus, si anume: numarul de produse la fiecare subcategorie, cât si numarul de produse marcate pentru stergere.

7.Pagina "Produse" - detaliu

În aceasta pagina se pot efectua urmatoarele operatii:

-introducerea unui produs nou,

-vizualizarea produselor introduse,

-modificarea oricarui produs introdus,

-stergerea oricarui produs introdus,

-anularea unei anumite stergeri (accidentale)

De mentionat este faptul ca pentru a ajunge la aceasta pagina utilizatorul trebuie sa dea un click de mouse pe unul din link-urile din pagina produse.

În cazul nostru s-a dat click Coolere:

Precizari

În realitate câmpul sters nu este sters permanent în baza de date, ci el este marcat în baza de date ca vizibil=0, iar în momentul anularii stergerii el redevine vizibil vizibil=1. Totusi daca se doreste o stergere definitiva a unui produs acest lucru se poate realiza accesând mai întâi pagina de modificare unde exista un link cu urmatorul mesaj:

Click aici pentru stergere definitiva

Fiecarui produs i se pot adauga poze suplimentare dând click pe imaginea aparatului foto din dreptul produsului respectiv.

8.Pagina "Produse" - introducere poze

În aceasta pagina se pot efectua urmatoarele operatii:

-introducerea, vizualizarea unei poze mici,

-introducerea, vizualizarea unei poze medii,

-introducerea, vizualizarea unei poze mari,

-stergerea definitiva a unei poze introduse

Toate operatiile enumerate mai sus se pot efectua dând click pe unul din link-urile din coloana Tipul de poza.

Cap II. Baze de date Avalon

1.Introducere n MySQL

MySQL este un sistem de gestiune a bazelor de date, în engleza DBMS adica DataBase Management System, si este un server SQL pentru baze de date foarte robust, rapid, multi-utilizator, multi-thread.

O baza de date este o colectie strucurata de date. Pentru a adauga, a accesa si pentru a procesa informatiile din baza de date e nevoie de un sistem de gestiune a bazelor de date ca, în cazul nostru MySQL.

MySQL este un sistem de gestiune a bazelor de date relationale (SGBDR).

O baza de date relationala memoreaza date în tabele separate în loc de a stoca toate informatiile într-o singura structura, adaugând astfel viteza si flexibilitate. Tabelele sunt legate prin relatii, permitându-se afisarea datelor combinate la cerere.

Exista 3 tipuri de relatii într-o Baza de Date relationala:

Relatie una-la-una - Exista câte una/unul din fiecare în relatie

Relatie una-la-mai-multe - O linie dintr-o tabela e legata la mai

multe linii din alta tabela.

Relatie mai-multe-la-mai-multe - Mai multe linii din tabela 1 sunt legate la

mai multe linii din tabela 2.

Sistemele de gestiune a bazelor de date relationale (SGBDR) ofera o cale excelenta pentru a stoca si a accesa informatii complexe. Cele mai populare SGBDR-uri sunt Oracle, Infomix, Microsoft's SQL Server, IBM's db2 si SGBD-uri "open-souce": MySQL, Postgres si Interbase.

Cel mai important lucru de retinut la MySQL este faptul ca este software OpenSource, disponibil sub licenta GPL (GNU Public License), deci în principiu este gratuit de folosit si chiar de modificat dupa dorinte, în limitele, bineînteles, a licentei respective. Totusi chiar daca este gratuit el nu este si slab calitativ. Din contra, la unele capitole bate adversari cu traditie si care mai si costa. O comparatie între principalele SGBD (în engleza DBMS) se poate regasi la urmatoarea adresa de net: https://www.geocities.com/mailsoftware42/db/index.html.

2.Crearea bazei de date si a tabelelor

Bazele de date MySQL sunt compuse din tabele, oarecum separate, continând diferite câmpuri, chiar daca sunt parte dintr-o baza de date. Fiecare tabela contine înregistrari care apartin anumitor câmpuri.

O tabela este o sectiune a bazei de date pentru memorarea unor informatii structurate (legate). Vom defini diferite câmpuri în tabele care ulterior vor fi folosite. Toate tabele create vor apartine de aceeasi baza de date.

Instructiunea cu care se creeaza o baza de date sau o tabela este CREATE; în continuare vom crea urmatoarele tabele în baza de date 'avalon': 'categories', 'currency', 'drivers', 'manufactures', 'picture', 'products' si 'tracker'.

CREATE TABLE `categories`

`categories_id` int(11) NOT NULL auto_increment,

`categories_name` varchar(20) NOT NULL default '',

`categories_name_details` varchar(32) NOT NULL default '',

`categories_image` varchar(60) NOT NULL default '',

`categories_group` varchar(20) NOT NULL default '',

`sort_order` varchar(6) NOT NULL default '0',

`date_added` datetime NOT NULL default '0000-00-00 00:00:00',

`visible` int(1) unsigned NOT NULL default '1',

KEY `visible` (`visible`),

KEY `categories_id` (`categories_id`),

KEY `categories_name` (`categories_name`)

 
Pentru crearea tabelei 'categories':

CREATE TABLE `currency`

`currency_id` int(11) NOT NULL auto_increment,

`currency_usd` float NOT NULL default '0',

`currency_euro` float NOT NULL default '0',

`currency_bank` varchar(32) NOT NULL default '',

`currency_date` date NOT NULL default '0000-00-00',

`currency_date_added` datetime NOT NULL default '0000-00-00 00:00:00',

`visible` int(1) NOT NULL default '1',

PRIMARY KEY (`currency_id`),

KEY `currency_date` (`currency_date`),

KEY `visible` (`visible`)

 
Pentru crearea tabelei 'currency':

Pentru crearea tabelei 'drivers':

CREATE TABLE `drivers`

`drivers_id` int(11) NOT NULL default '0',

`products_id` int(11) NOT NULL default '0',

`drivers_url` varchar(255) NOT NULL default '',

`visible` int(1) NOT NULL default '1',

KEY `drivers_id` (`drivers_id`),

KEY `products_id` (`products_id`)

 


Pentru crearea tabelei 'manufactures':

CREATE TABLE `manufactures`

`manufactures_id` int(11) NOT NULL auto_increment,

`manufactures_name` varchar(32) NOT NULL default '',

`manufactures_image` varchar(64) NOT NULL default '',

`manufactures_url` varchar(255) NOT NULL default '',

`date_added` datetime NOT NULL default '0000-00-00 00:00:00',

`visible` int(1) unsigned NOT NULL default '1',

PRIMARY KEY (`manufactures_id`),

KEY `manufactures_name` (`manufactures_name`),

KEY `visible` (`visible`),

KEY `date_added` (`date_added`)

 


Pentru crearea tabelei 'picture':

CREATE TABLE `picture`

`pictures_id` int(11) NOT NULL auto_increment,

`products_id` int(11) NOT NULL default '0',

`pictures_small_image` varchar(64) NOT NULL default '',

`pictures_large_image` varchar(64) NOT NULL default '',

`date_added` datetime NOT NULL default '0000-00-00 00:00:00',

`visible` int(1) NOT NULL default '1',

PRIMARY KEY (`pictures_id`),

KEY `products_id` (`products_id`)

 


Pentru crearea tabelei 'products':

CREATE TABLE `products`

`products_id` int(11) NOT NULL auto_increment,

`products_name` varchar(64) NOT NULL default '',

`products_image_small` varchar(64) NOT NULL default '',

`products_image_medium` varchar(64) NOT NULL default '',

`products_image_large` varchar(64) NOT NULL default '',

`products_description` text NOT NULL,

`products_url` varchar(255) NOT NULL default '',

`products_drivers` int(1) NOT NULL default '0',

`categories_id` int(11) NOT NULL default '0',

`manufactures_id` int(11) NOT NULL default '0',

`products_price_lei` float unsigned NOT NULL default '0',

`products_price_lei_tva` float unsigned NOT NULL default '0',

`products_price_usd` float unsigned NOT NULL default '0',

`products_price_euro` float unsigned NOT NULL default '0',

`products_price_tax` int(11) NOT NULL default '0',

`products_price_good` int(1) unsigned NOT NULL default '0',

`products_quantity` int(11) NOT NULL default '0',

`products_warranty_months` int(11) unsigned NOT NULL default '0',

`products_status` varchar(32) NOT NULL default '',

`products_source` varchar(8) NOT NULL default '',

`date_added` datetime NOT NULL default '0000-00-00 00:00:00',

`visible` int(1) NOT NULL default '1',

KEY `products_id` (`products_id`),

KEY `products_name` (`products_name`),

KEY `categories_id` (`categories_id`),

KEY `manufactures_id` (`manufactures_id`),

KEY `products_quantity` (`products_quantity`),

KEY `visible` (`visible`),

KEY `products_source` (`products_source`),

FULLTEXT KEY `products_description` (`products_description`)

 


Pentru crearea tabelei 'tracker':

CREATE TABLE `tracker`

`id` int(11) NOT NULL auto_increment,

`page` varchar(40) NOT NULL default '',

`ip` varchar(15) NOT NULL default '',

`browser` varchar(40) NOT NULL default '',

`resolution` varchar(20) NOT NULL default '',

`os` varchar(20) NOT NULL default '',

`date_auto` int(10) unsigned NOT NULL default '0',

`date_auto2` datetime NOT NULL default '0000-00-00 00:00:00',

PRIMARY KEY (`id`),

KEY `page` (`page`,`ip`,`browser`,`resolution`,`os`,`date_auto`),

KEY `date_auto2` (`date_auto2`),

FULLTEXT KEY `ip` (`ip`)

 


3.Interogarea bazei de date

Operatiile folosite în manipularea tabelelor sunt urmatoarele: de selectare, de introducere, de stergere si anumite selectari mai avansate folosind anumite filtre.

1.SELECT

Pentru a selecta anumite înregistrari din baza de date.

În exemplul de mai jos am selectat toate câmpurile vizibile din tabela 'currency' sortate descrescator dupa 'currency_date':

SELECT DAYNAME currency_date AS wd
FROM
currency
WHERE visible
ORDER
BY currency_date DESC

 


Functia DAYNAME va returna numele zilei aferente câmpului 'currency_date'

2.UPDATE

Pentru a modifica una sau mai multe înregistrari din baza de date.

În exemplul de mai jos în cimpul 'visible' se va trece valorea '0' corespunzator înregistrartii cu ID-ul 13, care este id unic, aceasta este o marcare pentru stergere:

UPDATE currency

SET visible = 0

WHERE currency_id = 13 LIMIT 1

 


În exemplul de mai jos în câmpul 'visible' se va trece valorea '1' corespunzator inregistrartii cu ID-ul 13, care este id unic, aceasta este o anulare a marcarii pentru stergere:

UPDATE currency

SET visible = 1

WHERE currency_id = 13 LIMIT 1

 


3.DELETE

În exemplul de mai jos se va sterge înregistrarea corespunzatoare ID-ului 13, care este id unic:

DELETE FROM currency

WHERE currency_id = 13 LIMIT 1

 


Aceasta stergere este definitiva, totusi în administrarea bazei de date nu s-a ales aceasta optiune de stergere definitiva tocmai pentru caracterul ireversibil al acestei actiuni.

Singurul mod care s-a ales totusi pentru a sterge un produs definitiv, este printr-un mod indirect, si anume, utilizatorul trebuie mai întâi sa aleaga produsul, sa dea click pe link-ul spre modificarea lui, iar abia aici se afla un alt link, cu confirmare, pentru stergerea definitiva a produsului.

4.INSERT

În exemplul de mai jos vom introduce o înregistrare noua:

INSERT INTO currency

(currency_usd, currency_euro, currency_bank, currency_date,

currency_date_added)

VALUES ('3.55,'2.95','BNR', '2006-03-06', '

 


5.SELECT - cu relatii între tabele

Selectarea anumitor produse din mai multe tabele si anume 'products','categories' si 'manufactures' dupa ID-urile categoriilor si producatorilor, care se regasesc în tabela produselor, adica 'products'.

Pentru a crea legaturile dintre tabele s-a folosit LEFT JOIN:

SELECT products.* , categories.categories_name,

categories.categories_group, manufactures.manufactures_name

FROM products

LEFT JOIN categories

ON products.categories_id=categories.categories_id

LEFT JOIN manufactures ON

products.manufactures_id=manufactures.manufactures_id

WHERE products.visible =1

AND categories.categories_name = 'Videoproiectoare'

ORDER BY categories.categories_group, categories.categories_name,

manufactures_name;

 


Cap III. Utilizarea php pentru realizarea aplicatiei

1.Introducere n PHP

Pâna nu demult, în Internet erau putini cei care realizau si foloseau fisierele de comenzi - scripturile. Recent, însa, tot mai multa lume îsi construieste propriile pagini Web, sau chiar propriile centre Web, iar limbajele de comenzi, pentru realizarea de script-uri, devin tot mai importante. În acelasi timp, aceste limbaje devin tot mai usor de învatat, iar PHP este unul din ele, poate cel mai simplu si cel mai puternic (deocamdata).

PHP vine de la "Hypertext Preprocessor" si este un limbaj de comenzi-script pentru server (se spune ca actioneaza pe partea serverului - server-side language). Adica fisierele cu comenzi PHP ruleaza pe serverul Web, nu în navigator, pe statia client. Cu alte cuvinte, nu exista probleme legate de compatibilitatea soft a calculatorului personal de pe care navigam. PHP este un limbaj relativ nou (comparativ cu alte limbaje precum Perl (CGI) si Java), dar devine rapid unul dintre cele mai raspândite si mai populare din Internet.

De ce ar trebui preferat PHP altor limbaje, precum Perl? si care ar fi avantajele folosirii unui limbaj pentru scripturi?

Întelegerea unui limbaj care sa ne permita scrierea de scripturi Web, poate schimba complet viziunea largind posibilitatile de publicare si activitate pe Web. Chiar daca putem descarca scripturi gata facute, din centre precum Hotscripts (www.hotscripts.com), acestea, de regula, includ reclama pentru autorul respectiv si nu ne vor oferi exact ce dorim. Întelegând limbajul vom edita mai usor aceste scripturi, pentru ca sa faca ceea ce dorim, sau chiar putem crea scripturi noi, proprii.

Folosirea scripturilor în propriul centru Web ne permite sa adaugam multe elemente de noutate si interactivitate, precum formularele de feedback, cartile de oaspeti, sistemele colaborative numite message boards, contoare ale vizitelor si multe alte elemente mai avansate precum sistemele portal, cele de management al continutului, gestionarii de reclame (advertising managers), etc. Astfel de elemente sunt necesare pentru a obtine o imagine de profesionist. Mai mult, oricine vrea acum sa lucreze în industria de proiectare si dezvoltare de centre Web va descoperi ca este mult mai simplu sa gaseasca un loc de munca atunci când stie PHP si programarea Web.

Asa cum am mentionat înainte, PHP este un limbaj pentru scripturi pe partea de server (server-side). Asta însemna ca utilizatorii nu trebuie sa-si instaleze nimic în plus, ca soft, dar pe platforma unde ruleaza serverul Web (gazda Web) trebuie sa avem instalat PHP. Acesta poate fi deja inclus (încorporat) în serverul Web. Daca serverul nu suporta PHP atunci va trebui sa se apelaze la administratorul sau pentru a-l instala, PHP-ul fiind un produs public - putând fi descarcat gratuit si simplu de la www.php.net. Alta cale este sa va instalati propriul server Web (de exemplu Apache) împreuna cu PHP.

Pentru a scrie un fisier în PHP pe calculatorul propriu nu trebuie nimic alceva decât un simplu editor de texte (precum Notepad din Windows).

Scripturile PHP sunt întotdeauna incluse între doua taguri PHP, conform aceleasi scheme ca si în HTML. Acestea spun serverului sa preia informatiile dintre ele si sa o interpreteze ca expresie din PHP. Exista trei forme diferite de marcare a expresiilor - comenzilor PHP, si anume:

<?

comenzi PHP;
?>

 

<?php

comenzi PHP;
php?>

 

<script language="php">
comenzi PHP;
</script>

 


Toate trei actioneaza - se comporta exact la fel. În cele ce urmeaza vom folosi doar prima varianta, pentru simplitate (<? si ?>). Dar pot fi folosite, la fel de bine oricare din cele trei. Totusi, combinarea lor nu este însa permisa, nu putem folosi pentru deschidere <? iar pentru închidere </script> , spre exemplu.

O observatie importanta este urmatoarea: linia de cod PHP se termina cu punct si virgula (;). Aceasta este foarte important ca sintaxa. La fel ca în multe alte limbaje de comenzi sau de programare, liniile trebuie sa se termine cu un marcaj anume, adesea tot (;), iar daca acest terminator este omis rezulta o eroare.

2.Conectarea la baza de date

Baza de date a fost deja creata în MySQL împreuna cu tabelele aferente în cap.II În esenta este vorba de un nume al bazei de date, un nume de utilizator (cont) si o parola. Aceste informatii sunt cerute pentru conectarea la baza de date.

<?php

$db_host = "localhost";

$db_user = "aval_db";

$db_password = "xyz";

$db_name = "avalon";

?>

 
În cazul nostru am creat fisierul 'db_config.php' care are urmatorul continut:

<?php

require("config/db_config.php");

// echo "Connection in progress ...";

$connection = @mysql_connect($db_host, $db_user, $db_password)

or die("Of, of ...");

mysql_select_db($db_name, $connection);

$this_page = $_SERVER["PHP_SELF"];

$IP = $_SERVER["REMOTE_ADDR"];

$date_auto = time();

$date_auto2 = date("Y-m-d H:i:s", $date_auto);

$query = "INSERT INTO tracker (page, ip, date_auto, date_auto2)

VALUES ('$this_page','$IP','$date_auto','$date_auto2')";

mysql_query($query, $connection);

?>

 
Aceaste informatii s-au pus într-un fisier separat, dar care va fi apelat din paginile care vor executa interogari la baza de date. Un exemplu în acest sens de conectare la server si selectarea bazei de date:

Precizari:

require("config/db_config.php"); :Citirea variabilelor din 'db_config.php'

@mysql_connect :Configurarea conexiunii

require("config/db_config.php"); :Conectarea la baza de date folosind

conexiunea creata

3.Elemente folosite în crearea paginilor dinamice

1.Variabile

Ca si în alte limbaje de programare, în PHP putem defini variabile. Exista câteva tipuri de variabile în PHP, dar cea mai uzuala este variabila sir de caractere, numita String. Poate fi folosita pentru texte sau numere. Toate sirurile de caractere, toate variabilele string încep cu semnul $. Pentru a atribui un text unei variabile string trebuie sa folosim o succesiune de forma:

$query = "SELECT * FROM currency ORDER BY currency_date DESC";

 


Este o linie simplu de înteles, tot ce se afla între ghilimele va fi atribuit variabilei string din membrul stâng. Desigur, sunt câteva reguli privind lucrul cu siruri de caractere.

Distintia dintre majuscule si minuscule. Astfel $Welcome_Text difera de $welcome_text . Numele de siruri pot contine litere, cifre si semne de subliniere (_), dar nu pot începe cu o cifra sau cu semnul de subliniere (_) . Când atribuim un numar la un string nu mai e nevoie sa punem ghilimelele. Adica este acceptata constructia:

$g_id = 13;

 


2.Instructiunea IF

Instructiunea conditionala IF este folosita pentru a compara doua valori si a realiza actiuni diferite în baza rezultatelor testului. Instructiunea urmeaza sintaxa (are forma) IF - THEN - ELSE. Partea IF testeaza o conditie. Daca aceasta este adevarata, atunci este urmata ramura THEN. În caz contrar se merge pe ramura ELSE.

if(move_uploaded_file($g_temp_fis1, $target_path))

else

 


3.Cicluri si vectori

Ciclul FOR este una din comenzile cele mai utile din PHP. Fara a fi prea complicata. Un ciclu FOR va executa, asa cum sugereaza si numele, o anumita parte de cod (un set de instructiuni), atâta timp cât este îndeplinita o anumita conditie.

Daca avem o anumita secventa de instructiuni care trebuie repetate de un numar fixat de ori (fara a le rescrie), atunci putem folosi un ciclu FOR. Spre exemplu, daca vrem sa adaugam un anumit numar de linii ($total) la tabel putem face astfel:

<?php

for ($i = 0; $i < $total; $i++)

?>

 


Vectorii sunt structuri obisnuite în majoritatea limbajelor de programare. Sunt variabile speciale care pot lua mai mult decât o singura valoare, toate stocate în spatiul propriu numerotat - în vector. Vectorii sunt extrem de utili mai ales la ciclurile FOR.

$total = mysqli_num_rows($result);

for ($i = 0; $i < $total; $i++)

 


În acest exemplu definirea vectorului $cr_id[], si a celorlalti vectori, va lua valori de 0 la $total, de forma: $cr_id[0]=34; $cr_id[1]=7; $cr_id[2]=12; . . .

4.Formulare - constructie si trimiterea datelor

Scrierea unui formular pentru a fi folosit cu un script PHP se face exact la fel ca si în mod normal, în HTML. În mod normal pentru construirea formularului avem nevoie de trei tipuri de componente:

1.Toate elementele formularului trebuie sa fie cuprinse între tagurile <form> </form>, unde valoarea atribuita lui form action spune care este script-ul caruia i se transmit datele (în acest caz este lui însusi $_SERVER[PHP_SELF];). Metoda method spune formularului cum sa transmita datele sale. Cu optiunea POST datele vor fi trimise scriptului într-un pachet (stream) atunci când acesta le cere.

2.Alt element este caseta pentru introducerea unui text, caseta în care apar scrise (la început) cuvintele Introduceti denumirea. De fapt atributul value în aceasta linie este optional. Informatia - textul atribuit atributului name va constitui numele acestei casete text, trebuind sa fie unic în formular, (<input name="v_name" type="text" id="v_name" size="20">).

3.Al treilea element este un buton de trimitere în formularul respectiv. Desigur se poate schimba/alege textul care apare pe buton modificând expresia atribuita lui value. (<input name="submit" type="submit" value="Introducere">)

<form action="<?php echo $_SERVER[PHP_SELF]; ?>" method="POST">

...

<table id="tabel" width="610" border="0" cellpadding="0"

cellspacing="4" style="font-family:Verdana; font-size:14px;">

<tr bgcolor="#F3E9DE">

<td width="265" bgcolor="#ECDCCA">&nbsp;Introduceti denumirea:

</td>

<td width="333" bgcolor="#EFE2D3">

<input name="v_name" type="text" id="v_name" size="20">

</td>

</tr>

...

<tr bgcolor="#F3E9DE">

<td bgcolor="#ECDCCA">&nbsp;

</td>

<td align="right" bgcolor="#EFE2D3">

<input name="submit" type="submit" value="Introducere">

</td>

</tr>

</table>

</form>

 


O a doua metoda de a trimite valori este folosind dupa link semnul de întrebare (?). În exemplul urmator vom trimite paginii products.php variabila id_produs care are valoarea 16. Aceasta informatie o putem transmite catre script fara un formular.

https://www.aval.ro/products.php?id_produs=16

5.Formulare - obtinerea datelor

Pasul urmator este sa luam, sa extragem datele din formularul transmis script-ului, astfel încât sa putem face ceva cu ele. Exista doua procedee diferite de extragere a datelor în PHP, care depind de modul în care datele au fost trimise (cu metoda GET sau cu POST). Diferenta majora dintre cele doua consta în faptul ca, folosind GET, variabilele si datele vor fi vizibile în adresa paginii, în timp ce folosind POST acestea sunt invizibile.

//Introduc in db valorile alese

$g_name = $_POST["v_name"];

$len = strlen($g_name);

if ($len > 0)

 


Iar pentru a doua metoda , aceea prin care trimitem variabilele direct în link, dupa semnul de întrebare, avem urmatoarele exemple:

$g_id = $_GET["s_idx"]; //Sterg din db linia alesa (visible = 0)

if ($g_id > 0)

 

$g_id = $_GET["s_idv"]; //Readuc din db linia alesa (visible = 1)

if ($g_id > 0)

 


Concluzii

Sunt necesare trei componente pentru a putea rula scripturi PHP care sa acceseze baze de date cu MySQL.

1.În primul rând, este nevoie de un server Web. Acesta poate fi sau pe calculatorul personal sau pe o 'gazda' Web. Oricare pachet - oricare tip de server Web este acceptat si va lucra cu PHP si MySQL, dar cel mai recomandat este Apache, care e public si gratis.

2.PHP trebuie sa fie instalat pe server. Daca nu este deja instalat, se poate apela la administratorul serverului Web, în acest sens. Pachetul de instalare poate fi descarcat - preluat de la https://php.net si este deasemeni public - gratuit.

3.În fine, avem nevoie de MySQL. Acesta este de fapt pachetul de programe pentru gestiunea bazelor de date. Putem folosi deasemeni multe alte sisteme de baze de date (SQL, Oracle etc.). MySQL-ul foloseste comenzi care tin de limbajul SQL care de altfel 'merg' la oricare din sistemele de baze de date SQL. si pachetul MySQL este public - gratuit, putând fi preluat din pagina oficiala a firmei MySQL, https://www.mysql.com/.

Chiar daca tot ce tine de administrarea bazelor de date poate fi realizat prin scripturi PHP, instalarea pe server a pachetului PHPMyAdmin poate aduce un plus de confort. Este un excelent set de scripturi care asigura o interfata administrativa pentru bazele de date MySQL. si mai este si public-gratuit. Cu se poate adauga, elimina, edita, salva si vizualiza bazele de date, fiind deosebit de util pentru depanare.

De ce s-a folosit PHP-ul si MySQL-ul?

A. Daca avem un calculator atunci putem creea un server de web folosind: Linux, Apache si PHP care sunt absolut gratuite. La fel si MySQL cu unele limitari.

B. PHP si MySQL pot fi folosite pe majoritatea platformelor.

C. Desi MySQL nu dispune de toate caracteristicile suportate de concurenta, este la fel de rapid si de puternic. Conectivitatea, viteza si securitatea face server-ul MySQL extrem de potrivit pentru accesarea bazelor de date pe Internet.

D. PHP a reusit sa ajunga la mix-ul perfect de putere, rapiditate, structura si usurinta în folosire.

E. Atât PHP-ul cât si MySQL-ul sunt imbunatatite în mod constant.

Bibliografie

Cursul "Crearea si programarea paginilor web"

Master: Informatica de Gestiune, Sem.II, Prof. Dr. Ing. Mariana Nagy

Internet - https://www.rophp.net/

Internet - https://www.phpromania.net/

Internet - https://dev.mysql.com/

Internet - https://www.phpromania.net/phpmanual/ref.mysql.html


Document Info


Accesari: 2602
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )