Implementarea Bazelor de Date

CUPRINS

1. Introducere……………………………………………………………………………………..1

2. Baze de date relaționale…………………………………………………………………….3

2.1 Caracteristici generale …………………………………………………………..3

2.2 Importanța bazelor de date …………………………………………………….7

3. MySQL…………………………………………………………………………………………10

3.1 Caracteristici de bază ale MySQL…………………………………………10

3.2 Instalare……………………………………………………………………………..10

3.3 Gestionarea erorilor în MySQL…………………………………………….11

3.4 Operații asupra unei baze de date………………………………………….12

3.4.1.Crearea bazei de date ………………………………………………12

3.4.2.Întretinerea datelor intr-o baza de date……………………….13

4. Limbajul PHP……………………………………………………………………………….17

4.1 Noțiuni elementare de sintaxă PHP……………………………………….17

4.2 Tipuri de date……………………………………………………………………..18

4.3 Variabile și constante…………………………………………………………..22

4.4 Expresii……………………………………………………………………………..26

4.5 Operatori……………………………………………………………………………26

4.6 Structuri de control………………………………………………………………29

5. Interacțiunea PHP-MySQL……………………………………………………………..36

5.1 Conectarea la baza de date……………………………………………………37

5.2 Alegerea bazei de date…………………………………………………………38

5.3 Întretinerea bazei de date……………………………………………………..39

6. Descrierea aplicației……………………………………………………………………….43

6.1 Introducere…………………………………………………………………………43

6.2 Proiectarea bazei de date………………………………………………………44

6.2.1 Descrierea și crearea bazei de date…………………………….44

6.2.2 Descrierea și crearea tabelelor…………………………………..44

6.2.3 Legăturile dintre tabele…………………………………………….47

6.3 Descrierea scripturilor PHP………………………………………………….48

7. Concluzii……………………………………………………………………………..59

8. Bibliografie………………………………………………………………………….60

=== implememntarea bazelor de date ===

1.INTRODUCERE

Bazele de date reprezintă cadrul fundamental al unui sistem informațional și au modificat radical modul de operare al multor organizații. Dezvoltarea tehnologiei bazelor de date de-a lungul ultimilor ani a dus la crearea unor sisteme mai puternice, ce pot fi utilizate într-un mod mai intuitiv. Astfel, sistemele de baze de date au devenit din ce în ce mai accesibile pentru o mai largă varietate de utilizatori.

Utilizarea bazelor de date nu se rezumă doar la gestionarea unui mare volum de informații. Datorită complexității prelucrării datelor este necesară utilizarea unui limbaj care interacționează cu baza de date.

Lucrarea de față are ca obiectiv prezentarea modului de utilizare ale limbajelor PHP și SQL, proprietățile, facilitățile și avantajele acestor limbaje precum și modul de interacțiune al limbajului PHP cu serverul de baze de date. Subiectul lucrării este dezvoltat pe parcursul a cinci capitole, primele patru fiind destinate prezentării elementelor teoretice ale lucrării iar capitolul șase cuprinde prezentarea aplicației.

Capitolul Baze de date relaționale prezintă noțiunile fundamentale ale bazelor de date relaționale cu referire la componentele structurale ale modelului relațional, procesul de normalizare și avantajele abordării cu baze de date.

În următorul capitol, Limbajul MySQL, în primele subcapitole sunt descrise caracteristicile limbajului SQL, modul de instalare și de conectare la serverul de baze de date și gestionarea erorilor în MySQL. În ultima parte se prezintă principalele operații asupra unei baze de date:

-crearea bazei de date și a tabelelelor;

-introducerea, actualizarea și ștergerea datelor dintr-o bază de date.

Capitolul 4, Limbajul PHP cuprinde mai întâi un scurt istoric al limbajului PHP și noțiuni generale referitoare la limbaj. În următoarele subcapitole sunt prezentate tipurile de date utilizate de limbajul PHP, operatorii și structurile de control.

Capitolul 5, Interacțiunea PHP-MySQL. Acest capitol prezintă modul în care PHP se conectează la serverul de baze de date, precum și interacțiunea limbajului PHP cu baza de date prin trimiterea de comenzi către serverului MySQL.

Capitolul 6, Descrierea aplicației. Exemplificarea modului de utilizare al limbajului PHP cu serverul de baze de date MySQL se realizează printr-o aplicație ce are ca subiect evidența clienților și furnizorilor, respectiv evidența facturilor unei firme. Aplicația permite introducerea, actualizarea și ștergerea firmelor și facturilor din baza de date, și vizualizarea unor situații referitoare la vânzările realizate, prin calculul totalului vânzărilor pentru o anumită dată și a balanței analitice pentru un anumit produs.

În prima parte a descrierii se prezintă modul în care a fost realizată baza de date, crearea tabelelor și legătura dintre tabele.

A doua parte a prezentării se referă la descrierea scripturilor PHP utilizate pentru extragerea și prezentarea informațiilor din baza de date.

2.BAZE DE DATE RELAȚIONALE

2.1CARACTERISTICI GENERALE

Un sistem de baze de date este un sistem de păstrare a înregistrărilor bazat pe calculator, adică un sistem al cărui scop este de a înregistra și menține informații. Informația implicată poate fi orice entitate căreia noi îi conferim o semnificație, adică ceva care poate fi necesar în procesele de luare de decizii implicate în gestionarea unei organizații. [1].

Bazele de date de diferite tipuri au pătruns în aproape toate domeniile de afaceri. Toate tipurile de date de la e-mail și informații de contact la date financiare și înregistrări de vânzari sunt stocate în diferite forme de baze de date.

Conceptul de baze de date relaționale a fost prima data descris de Edgar Frank Codd în raportul de cercetare IBM RJ599 în 19 august 1969. Articolul, considerat în mod uzual piatra de temelie a acestei tehnologii, este „A relational Model of Data for Large Shared Data Banks” publicat în Communication of the ACM (Vol. 13, No. 6, June 1970, pp. 377-87).

Ideile lui E.F.Codd s-au bazat pe teoria mulțimilor și calculul relațional și între 1970 și 1980 acest model s-a bucurat de atenția multor cercetători în baze de date. Baza de date relațională este un concept important pe piața actuală a sistemelor de gestiune a bazelor de date. Multe organizații își implementează baze de date relaționale pentru sistemele de luare de decizii.

Fundamentul modelului relațional, teoria matematică a mulțimilor, descrie modul de efectuare a operațiilor algebrice uzuale (de exemplu reuniunile și intersecțiile) într-o manieră similară aceleia în care aceste operații sunt efectuate în teoria mulțimilor. Tabelele sunt analoagele mulțimilor: ele sunt colecții de elemente distincte care au proprietăți comune [2].

Componentele structurale ale modelului relațional sunt :

-relații;

-atribute;

-domenii;

-tuple;

-chei;

-reprezentări.

Relații: O relație reprezintă o tabelă cu nume, linii și coloane. Este structura bazei de date care stochează datele despre o anumită entitate. Un tip de entitate este o clasă de obiecte, evenimente sau concepte cu proprietăți comune. Gradul relației este reprezentat de numărul său de coloane.

Atribute: Fiecare coloană sau atribut al unei relații are un nume care îl identifică în mod unic în cadrul unei relații. Aceste atribute pot apărea în orice ordine într-o relație și relația va comunica aceeași semnificație.

Domenii: Valorile unui atribut aparțin unui domeniu. Un domeniu este un grup de restricții asupra tipului de date, lungimii, formatului, intervalului și unicității valorilor permise sau asupra valorilor specifice.

Tuple: Elementele unei relații sunt liniile tabelei care sunt numite și tuple. Fiecare linie conține n valori, câte una pentru fiecare atribut. În cazul în care o relație reprezintă o entitate, fiecare linie reprezintă o instanță de entitate. Tuplele pot să apară în orice ordine, tabela va transmite aceeași semnificație.

Chei: Orice relație are o mulțime de chei candidate, dintre care una se va selecta pentru a fi cheia primară.

Întrucât valorile sunt stocate la intersecția dintre rândurile și coloanele tabelei, acestea necesită un mecanism de identificare numit cheie primară. Fiecare tabelă are o singură cheie primară. Această cheie primară este unică, identificând numai un rând dintr-o tabelă. Într-o tabelă nu pot exista două rânduri care să aibă aceeași valoare a cheii primare. Valoarea unei chei primare nu poate fi vidă iar odată create, valorile cheilor primare se schimbă foarte rar.

Informațiile despre diversele tipuri de entități sunt stocate în tabele diferite. Din această cauză trebuie să existe un mod de a naviga între tabele. Acest lucru se realizează printr-un mecanism numit cheie externă, pentru a fi posibilă asocierea a două tabele. O cheie externă este o coloană (sau un grup de coloane) dintr-o tabelă ale cărui valori sunt în relație cu valorile dintr-o altă tabelă sau face referire la aceste valori. Tabela care conține cheia externă este tabela care face referiri sau tabela copil iar cealaltă tabelă, la care se face referire, este tabela părinte. Această cheie externă stabilește o relație directă cu cheia primară a tabelei părinte, astfel încât valorile cheii externe sunt restricționate la valorile cheii părinte deja existente. Această restricție se numește integritate referențială. Valorile cheii externe se încadrează în același domeniu de valori ca și valorile cheii părinte dar spre deosebire de valorile cheii primare, valorile cheii externe pot avea valoarea null. O cheie externă poate avea un nume de coloană diferit de numele de coloană al cheii sale părinte.[2]

Reprezentări: O convenție comună pentru reprezentarea unei relații este de a-i da numele, urmat de numele atributelor sale, cu cheia primară subliniată.

În cadrul unei baze de date pot exista mai multe tipuri de relații de conectare. O relație este o asociere între coloanele comune din două tabele și poate fi de tipul:

Unu la unu;

Unu la mai mulți

Mai mulți la mai mulți.

Relația unu la unu – se caracterizează prin faptul că fiecare rând din tabela A are cel mult un rând corespondent în tabela B și fiecare rând din tabela B are cel mult un rând corespondent în tabela A. Aceste relații sunt utilizate pentru a izola informațiile confidențiale din motive de securitate, pentru a spori viteza de execuție a interogărilor sau pentru a evita inserarea de null-uri în tabelele care conțin coloane cu valori non-null într-un sub-grup mic de rânduri. O relație de tip unu la unu este stabilă atunci când cheia primară a unei tabele este în același timp și o cheie externă care face referire la cheia primară a unei alte tabele.

Relația unu la mai mulți – într-o relație de acest tip fiecare rând din tabela A poate avea mai multe rânduri corespondente în tabela B, însă fiecare rând din tabela B poate avea doar un singur rând corespondent în tabela A. Relațiile de tip unu la mai mulți sunt stabilite în cazul în care cheia primară a unei tabele este în același timp cheia externă a mai multor tabele.

Relația mai mulți la mai mulți – constă în faptul că fiecare rând din tabela A poate avea mai multe rânduri corespondente în tabela B și fiecare rând din tabela B poate avea mai multe rânduri corespondente în tabela A. O relație de tip mai mulți la mai mulți se stabilește numai prin crearea unei al treilea tabele numite tabelă asociativă a cărei cheie primară este o combinație între cheile primare a celorlalte două tabele.

Pentru a evita, în cadrul bazelor de date, încărcarea tabelelor cu date duplicate se utilizează un proces numit normalizare. Normalizarea este un proces dezvoltat pentru identificarea grupărilor de atribute stabile, cu o mare interdependență și afinitate. Acest proces încorporează principiile modelării semantice a datelor și conduce la proiectări flexibile de baze de date. În urma procesului de normalizare tabelele se vor modifica pentru a reduce redundanța și lipsa de coerență. După fiecare etapă, baza de date se află într-o anumită formă normală. Modelul relațional definește trei forme normale, numerotate în ordine:

Prima formă nromală (1NF)

A doua formă normală (2NF)

A treia formă normală (3NF).

Fiecare formă normală este mai puternică decât cea de dinainte. O bază de date aflată în forma 3NF este în același timp în formele 2NF și 1 NF. Nivelurile de normalizare mai ridicate tind să mărească numărul tabelelor în comparație cu nivelurile de normalizare mai scăzute. Există niveluri de normalizare mai ridicate (4NF și 5NF), însă modelul relațional nu le consideră ca făcând parte din standard. Normalizarea este un proces iterativ care implică divizări, uniri și perfecționări repetate ale tabelelor.

Prima formă normală

O tabelă în prima formă normală are coloane ce conțin numai valori atomice și nu are grupuri care se repetă. O valoare atomică, denumită și scalară, este o valoare unică ce nu poate fi subdivizată într-un mod care să aibă sens.

A doua formă normală

O tabelă se află în a doua formă normală dacă este în prima formă normală și nu are dependențe funcționale parțiale. O tabelă conține o dependență funcțională parțială atunci când unele dintre valorile cheii compuse (nu toate) determină o valoare a unei coloane non-cheie.

A treia formă normală

Spunem că o tabelă este în a treia formă normală în cazul în care este în a doua formă normală și nu are dependențe tranzitive. O tabelă are dependențe tranzitive în cazul în care valoarea unei coloane non-cheie determină valoarea unei alte coloane non-cheie. În cazul tabelelor 3NF, coloanele non-cheie sunt reciproc independente și sunt dependente numai de coloana (coloanele cheii primare).

Normalizarea relațională este o abordare riguroasă, exactă pentru a grupa atribute în relații stabile.[1]

2.2 IMPORTANȚA BAZELOR DE DATE

Tehnologia bazelor de date este una din ariile științei calculatoarelor cu o dezvoltare deosebit de rapidă. Deși este un domeniu tânăr, având începutul pe la mijlocul anilor 60’, ea a devenit de o importanță covârșitoare, atât din punct de vedere teoretic cât și practic. Cantitatea totală de date din bazele de date a devenit acum posibil a fi măsurată în miliarde de octeți. Multe mii de organizații au devenit dependente de operarea continuă și cu succes a sistemelor de baze de date.

Un sistem de baze de date oferă un control centralizat asupra datelor sale operaționale. Prin control centralizat:

Redundanța poate fi redusă. În sistemele non-bază de date fiecare aplicație își are fișierele sale private, ceea ce conduce adesea la redundanța datelor înregistrate și ca urmare necesită un spațiu mare de memorare.

Inconsistența poate fi evitată. Nu sunt permise două intrări pentru aceeași entitate în baza de date.

Datele pot fi partajate. Aplicațiile existente pot partaja date din baza de date și noile aplicații pot fi dezvoltate pentru a opera asupra datelor existente.

Pot fi aplicate restricții de securitate

Poate fi menținută integritatea datelor

Cererile conflictuale pot fi balansate.

Abordarea orientată pe baze de date, pentru a gestiona resursele de date ale unei organizații are mai multe obiective:

Protejarea valorii datelor, ceea ce constă în controlul integrității, securității și siguranței datelor.

Permiterea organizației de prelucrare date de a suporta mai bine planurile și scopurile de afaceri ale companiei.

Reducerea costului de înbunătățire a performanței.

Abordarea cu baze de date poate îmbunătății:

-controlul datelor;

-accesibilitatea datelor;

-calitatea datelor;

-partajarea datelor;

-siguranța datelor;

-securitatea datelor;

-performanța.

Controlul datelor. Controlul îmbunătățit al datelor oferă mai multă consistență în descrierea datelor și reduce efortul de programare cerut pentru a schimba implementarea de date.

Accesibilitatea datelor. Este abilitatea utilizatorului de a extrage informația necesară din resursa de date. Accesibilitatea datelor este mărită de limbajele de interfață prietenoasă.

Calitatea datelor. Este măsurată de către consistența și completitudinea bazei de date. Baza de date trebuie să conțină date relevante pentru nevoile de decizie ale utilizatorului.

Partajarea datelor. Este necesară pentru ca datele să fie controlabile. Fără partajare datele sunt private și personale, fără nici un control asupa calității lor. Partajabilitatea se referă atât la conținutul bazei de date cât și la modul în care se accesează și gestionează datele.

Siguranța datelor. Refacerea datelor (data recovery) este necesară pentru a păstra resursa de date în siguranță față de posibilele erori. Dificultatea oferirii unei resurse de date sigure constă în posibilitatea de a asigura disponibilitatea datelor pentru utilizatori în timp ce sunt refăcute după erori.

Securitatea datelor. Previne accese neautorizate la date. Aproape toate datele unei organizații trebuie să aibă protecție la acces, deși nu toate mediile cer aceleași scheme de securitate.

Performanța. Performanța resursei de date se referă la eficiența și efectivitatea acesteia. Eficiența măsoară gradul de utilizare a resurselor fizice ale calculatorului iar efectivitatea arată gradul în care sistemul de date întâlnește nevoile de informații ale utilizatorilor.

Principalul obiectiv al mediului baze de date este de a oferi un volum mare de date, consistentă, exactă, sigură, controlabilă și extensibilă pentru a satisface nevoile de informație ale unei comunități de utilizatori în continuă creștere. Beneficiul real al mediului de baze de date este calitatea îmbunătățită a datelor, precum și disponibilitatea și costurile reduse pentru suportarea în continuare a nevoilor de date a utilizatorilor. [1]

3. MySQL

3.1 CARACTERISTICI DE BAZĂ ALE MySQL

MySQL este un server de baze de date multi-user ce functionează pe foarte multe platforme. SQL este cel mai popular limbaj de baze de date din lume. MySQL este o implementare client/server care constă într-un server MySQL (mysqld) care este responsabil de traficul de tip incoming/outgoing cu baza de date și multe alte programe client precum și o clasă de biblioteci foarte bine optimizată. Principalele obiective ale MySQL sunt viteza, stabilitatea și ușurința în utilizare. Inițial MySQL a fost proiectat din cauza necesității existenței unui server SQL care poate lucra foarte bine cu baze de date de dimensiuni foarte mari. În prezent MySQL cuprinde peste 40 de baze de date, conținând mai mult de 10000 de tabele, dintre care mai mult de 500 au peste 7 milioane rânduri, ceea ce înseamnă aproape 100 gigabytes de date.

MySQL este scris în C și C++, testat cu o gamă foarte largă de compilatoare și are sistem de securitate bazat pe username/password și sistem privilegiu foarte flexibil și sigur. Suportă foarte multe tipuri de coloane: integer cu sau fără semn, de lungime 1,2,3,4 sau 8 bytes, float, double, char, varchar, text, blob, date, datetime, set, enum, etc. Clienții se pot conecta la server-ul MySQL fie folosind o conexiune TCP/IP fie un port Unix.

3.2 INSTALARE

Pentru utilizarea limbajului SQL este necesară instalarea unui server MySQL. În funcție de sistemul de operare și de facilitățile dorite se va consulta pagina http://web.myslq.com pentru informații legate de versiunile existente și download, sau alte site-uri mirror. Acest produs se poate procura gratuit, separat sau în pachete complete ce cuprind și un server web (de exemplu un pachet WAMP, prescurtarea de la Windows, Apache, MySQL, PHP). Dupa alegerea și download-area versiunii convenabile se dezarhivează pachetul și se rulează fișierul de setup. Fiecare versiune cuprinde un fișier manual care arată pas cu pas modul de instalare.

În mediul Windows, MySQL utilizează TCP/IP pentru a a permite conectarea la server al oricarui client din rețea.

Pentru a începe lucrul cu MySQL trebuie pornit server-ul mysqld. Se va deschide o fereastră de comandă de tip MS-DOS:

Start -> Programs ->Accessories ->Command Prompt

unde se va tasta :

C: \ mysql \ bin \ mysqld

Conectarea la baza de date implicită se face cu comanda mysql.

3.3 GESTIONAREA ERORILOR ÎN MySQL

Gestionarea erorilor reprezintă o caracteristică importantă a utilizării MySQL. Depistarea imediată a problemelor la rularea scripturilor poate economisi mult timp de depanare.

Erorile întâlnite în mod obișnuit sunt:

Eșecul în stabilirea conexiunii la MySQL;

Eșecul în selectarea unei baze de date;

Incapacitatea de a rula o interogare;

O interogare nu returnează nici un rezultat;

Datele nu sunt inserate într-un tabel.

Pentru ca scripturile să ofere rapoarte informative despre erorile care apar, se va utiliza funcția mysql_error(). Această funcție returnează o versiune text a erorii returnate de serverul MySQL.

Alături de această funcție se mai pot utiliza două instrumente PHP pentru gestionarea erorilor: simbolul @ și funcția die ().

Simbolul @ , în cazul în care este utilizat înaintea unui nume de funcție, suprimă orice mesaj de eroare sau de avertizare ce ar putea fi apelat de funcție. Se va utiliza în cazul funcțiilor care ar putea crea probleme dar care nu necesită oprirea scriptului.

Funcția die () încheie execuția unui script și trimite browser-ului Web orice mesaj introdus ca argument între paranteze. De exemplu:

die (‘ nu s-a putut realiza conexiunea la MySQL’);

Se va utiliza la orice funcție a cărei executare cu succes este impusă de restul scriptului, cum ar fi conectarea la server-ul MySQL și selectarea bazei de date.[7]

3.4 OPERAȚII ASUPRA UNEI BAZE DE DATE

3.4.1 Crearea bazei de date

După instalarea MySQL și pornirea serverului mysqld se va utiliza linia de comandă SQL pentru crearea bazei de date:

mysql> CREATE DATABASE nume_db – va crea baza de date cu numele nume_db;

Sub Unix, numele bazelor de date sunt case-sensitive la fel și numele tabelelor dar sub Windows nu există restricții în acest sens. După crearea unei baze de date, pentru a o putea folosi, trebuie ca această bază de date să fie explicită. Pentru a face nume_db baza de date curentă folosim instrucțiunea:

mysql> USE nume_db

Baza de date trebuie să fie creată doar o singură dată, dar trebuie să fie selectată pentru folosință de fiecare dată când vrem să lucrăm în ea, folosind comanda USE arătată mai sus. Alternativ, se pot selecta diferite baze de date pentru a lucra în ele.

Pentru ștergerea unei baze de date se utilizează instrucțiunea:

mysql>DROP DATABASE nume_db

Baza de date va fi compusă din tabele conținând diferite înregistrări.[2]

3.4.2.Întreținerea datelor într-o bază de date

Crearea unei tabele

O tabelă este o secțiune a bazei de date pentru memorarea unor informații structurate. Într-o tabelă sunt definite diferite câmpuri care vor fi utilizate în acea tabelă.

Pentru a crea o tabelă se folosește instrucțiunea CREATE TABLE cu următoarea sintaxă:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,…)] [table_options] [select_statement]

Pentru ștergerea unei tabele se utilizează comanda:

mysql>DROP TABLE nume_tbl

Inserarea datelor într-o bază de date

Introducerea datelor într-o bază de date se poate realiza cu ajutorul instrucțiunii INSERT care va insera datele specificate în tabela indicată.

Această instrucțiune se poate utiliza în două situații și are două forme diferite:

a) Instrucțiunea INSERT…VALUES este utilizată pentru introducerea datelor într-o tabelă, înregistrare cu înregistrare. Sintaxa instrucțiunii este:

INSERT [LOW_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,…)] VALUES (expression,…),(…),…

b) Instrucțiunea INSERT…SELECT se utilizează în situația în care se dorește copierea informațiilor într-o tabelă dintr-o altă tabelă.

INSERT [LOW_PRIORITY] [INTO] tbl_name [(col_name,…)] SELECT…FROM…

La inserarea datelor într-o tabelă se aplică următoarele reguli:

– valorile utilizate să fie de același tip de dată ca și câmpurile în care vor fi inserate;

– dimensiunea datei să fie mai mică decât dimensiunea coloanei unde urmează să fie introdusă;

– poziția datei în lista VALUES să corespundă poziției locației din lista de coloane în care este inserată.

Preluarea datelor dintr-o bază de date

Pentru preluarea datelor dintr-o bază de date se folosește instrucțiunea SELECT. Sintaxa acestei instrucțiune este:

SELECT [STRAIGHT JOIN] [SQL_SMALL_RESULT] [DISTINCT | ALL]

select_expression,…

[INTO OUTFILE ‘file_name’ export_options]

[FROM table_references

[WHERE where_definition]

[GROUP BY col_name,…]

[HAVING where_definition]

[ORDER BY {unsigned_integer|col_name} [ASC|DESC],…]

[LIMIT [offset] rows]

[PROCEDURE procedure_name] ]

Dacă se dorește vizualizarea tuturor informațiilor din baza de date se va folosi:

mysql>SELECT * FROM nume_db;

Clauza WHERE este clauza SQL cea mai folosită care permite condiționarea interogărilor. În sintaxa clauzei WHERE se pot utiliza mai multe tipuri de operatori: = , > , < ,<= , >= ,etc.

Ștergerea datelor dintr-o bază de date

Ștergerea datelor din baza de date se realizează prin instrucțiunea DELETE. Sintaxa instrucțiunii este:

DELETE [LOW_PRIORITY] FROM tbl_name [WHERE where_definition]

Prin instrucțiunea DELETE se pot șterge doar înregistrări din tabele, nu și tabelul. Această instrucțiune șterge înregistrările din câmpurile tabelului care îndeplinesc condițiile stabilite în where_definition.

Actualizarea datelor într-o bază de date

Actualizarea datelor într-o bază de date se realizează cu ajutorul instrucțiunii UPDATE. Sintaxa instrucțiunii este:

UPDATE [LOW_PRIORITY] tbl_name SET col_name1 = expr 1,

col_name2 = expr2 ,…

[WHERE where_definition]

Instrucțiunea UPDATE va modifica datele care satisfac condițiile specificate în clauza WHERE.[7]

4. LIMBAJUL PHP

4.1 NOȚIUNI ELEMENTARE DE SINTAXĂ PHP

PHP este un limbaj open-source de redactare a scripturilor înglobat în HTML. PHP are semnificația de Hypertext Preprocessor (preprocesor de hipertext) și manipulează datele înainte ca acestea să se transforme în format HTML, care reprezintă abrevierea de la HyperText Markup Language (limbaj de marcare a hipertextului).

Limbajul PHP a fost creat în 1995 de către Rasmus Lerdorf și inițial a reprezentat abrevierea de la Personal Home Page (pagină de bază personală). Pe măsură ce utilitatea și caracteristicile sale s-au dezvoltat și pe măsură ce programul a început să fie utilizat în situații cu un caracter mai profesional, PHP a ajuns să aibă semnificația de Hypertext Preprocessor.

PHP este larg utilizat ca limbaj de programare, în special pentru dezvoltarea de aplicații Web. Sintaxa folosită de PHP este foarte asemănătoare cu cea a C-ului, Java și Pearl. Scopul principal al acestui limbaj este de a permite dezvoltatorilor Web scrierea rapidă de pagini web generate dinamic.[6]

Pentru a crea un script PHP acesta va trebui să fie salvat cu extensia .php. La fel ca și în HTML , cu ajutorul tag-urilor „<?php” respectiv „?>” se va putea delimita codul PHP de codul HTML.

<?php

…………….

cod php

……………..

?>

În PHP, ca și în orice limbaj de programare, există posibilitatea adăugării comentariilor în codul sursă care nu vor fi luate în considerare de către compilator. PHP suportă pentru comentarii stilurile folosite de C, C++ și Unix:

/* – comentariu în stil C

// – comentariu în stil C++

# – comentariu în stil Bourne shell

O declarație în PHP se încheie întotdeauna cu punct și virgulă (;). Neterminarea unei declarații cu punct și virgulă va duce la eroare de tip „parse error”.

4.2 TIPURI DE DATE

PHP suportă opt tipuri de date principale care pot fi scalare, compuse și speciale. Există patru tipuri de date scalare:

boolean

integer

floating-point number (float)

string

Două tipuri de date compuse:

array

object

Două tipuri de date speciale:

resource

NULL

Tipul BOOLEAN

Acest tip de dată exprimă valoarea de adevăr a unei expresii și poate lua valoarea TRUE sau FALSE. Tipul boolean a fost introdus în PHP 4.

Sintaxa:

Pentru a specifica o valoare booleană se va folosi unul dintre cuvintele cheie TRUE sau FALSE, ambele fiind case-sensitive:

<?php

$a = True; // asignează valoarea TRUE variabilei $a

?>

Tipul INTEGER

Tipul integer reprezintă un număr din setul Z= {…, -2, -1, 0, 1, 2,…}.

Sintaxa:

Tipul integer poate fi specificat în următoarele baze: zecimal (10-based), hexazecimal (16-based), octal (8-based), opțional precedat de semn – sau +.

<?php

$a = 1234; # număr în baza zecimală

$a = -123; # număr negativ în baza zecimală

$a = 0123; # număr în baza octală (echivalent cu 83 în baza zecimală)

$a = 0x1A; # număr în baza hexazecimală (echivalent cu 26 în baza zecimală)

?>

Mărimea unui număr de tip integer est dependentă de platformă dar valoarea maximă uzuală este de 2 miliarde (pe 32 biți). Dacă se specifică un număr peste această limită acesta va fi interpretat ca fiind de tip float. PHP nu suportă date de tip unsigned integer.

Tipul FLOAT

Numerele de tip floating point (floats, doubles, real numbers) pot fi specificate utilizând una din următoarele sintaxe:

<?php

$a = 1.234;

$b = 1.2e3;

$c = 7E-10;

?>

Mărimea maximă a datelor de tip float este dependentă de platforma pe care rulează, dar în majoritatea cazurilor este ~1.8e308 cu o precizie de aproximativ 14 zecimale (în formatul 64 biți IEEE).

Tipul STRING

Un string este un șir de caractere. În limbajul PHP un caracter are lungimea de un byte, existând 256 de caractere diferite. În PHP nu există o limită care determină lungimea maximă a unui string.

Sintaxa:

Un string se poate specifica în următoarele trei modalități diferite:

single quoted – definirea cu ghilimele simple:

<?php

$a='this is a simple quoted string';

?>

double quoted – definirea cu ghilimele duble:

<?php

$a=”this is a double quoted string”;

?>

Diferența între cele două modalități este faptul că în al doilea caz pot fi inserate anumite caractere speciale, iar dacă în cadrul textului apare o variabilă, aceasta va fi înlocuită cu valoarea conținută în ea.

Caracterele speciale care pot fi utilizate sunt:

\n linie nouă

\r întoarcerea la începutul liniei

\t tab

\\ backslash

\$ semnul dolar

\” ghilimele

heredoc syntax – este o altă posibilitate de a delimita string-urile utilizând „<<<”. După „<<<” trebuie specificat un identificator, apoi string-ul, apoi același identificator pentru a închide ghilimelele.

<?php

$a=”heredoc string”;

Echo <<<EOT

This is a $a

EOT;

?>

Tipul ARRAY (tablou)

Un array în limbajul PHP este de fapt o hartă ordonată care asociază unei valori o cheie. Acest tip de date este optimizat astfel încât să fie utilizat ca un tablou, o listă, hashtable, stivă sau coadă.

Sintaxa:

Se crează utilizând array().

array( [ key=> ] value

, …

)

O cheie trebuie să fie un string sau un integer ne-negativ iar valoarea poate fi de orice tip.

Tipul OBJECT

Pentru a inițializa un obiect cu valoarea unei variabile se va utiliza „new”.

<?php

class foo

{

function do_foo()

{

echo "Doing foo.";

}

}

$bar = new foo;

$bar->do_foo();

?>

Tipul RESOURCE

Este un tip de date special care ține o referință către o resursă externă. Aceste resurse sunt create și folosite de funcții speciale.

Tipul NULL

Este o valoare specială care specifică faptul că o variabilă nu are nici o valoare. NULL este singura valoare posibilă a tipului NULL.[6]

4.3 VARIABILE ȘI CONSTANTE

Variabile

O variabilă poate fi cel mai bine asimilată unui container de date. După stocarea datelor într-o variabilă, adică după ce unei variabile i-a fost atribuită o valoare, variabila respectivă poate fi modificată, afișată, salvată într-o bază de date, etc.

Variabilele din PHP sunt reprezentate de semnul dolarului, urmat de numele variabilei. Prin natura lor, aceste variabile sunt flexibile, se pot insera date într-o variabilă sau regăsi datele din variabila respectivă, dar au și un caracter temporar având o valoare numai pe durata unui script.

Numele unei variabile se supune acelorași reguli ca orice etichetă în PHP. Toate numele variabilelor trebuie precedate de simbolul dolarului ($) și sunt case-sensitive. După simbolul dolarului, numele variabilelor trebuie să înceapă cu o literă (A-Z, a-z) sau cu un caracter de subliniere ( _ ), urmată de orice număr sau literă. Nu este permisă utilizarea spațiilor în interiorul unui nume de variabilă.

Pentru a atribui o valoare unei variabile se va folosi operatorul de atribuire ( = ) :

$număr= 1;

$șir= “ șir”;

Variabile predefinite

PHP furnizează o serie de variabile predefinite pentru fiecare script care rulează. Aceste variabile sunt automat globale, astfel ele fiind disponibile la orice moment. Din această cauză, aceste variabile sunt denumite și variabile autoglobale sau superglobale dintre care cele mai cunoscute sunt:

$GLOBALS – conține referințe la toate variabilele care sunt în mod curent la dispoziție. Cheile pentru acest array sunt numele variabilelor globale.

$_SERVER – sunt variabile setate de către web server sau direct legate de mediul de execuție al scriptului curent.

$_GET – sunt variabile puse la dispoziția scriptului prin HTTP GET.

$_POST – sunt variabile puse la dispoziția scriptului prin HTTP POST.

$_COOKIE – sunt variabile puse la dispoziția scriptului prin HTTP cookie.

$_FILES – sunt variabile puse la dispoziția scriptului prin HTTP post file upload.

$_ENV – sunt variabile puse la dispoziția scriptului prin mediul de execuție.

$_REQUEST – sunt variabile puse la dispoziția scriptului prin orice mecanism user input.

$_SESSION – sunt variabile care sunt înregistrate la execuția scriptului.

Variabile dinamice

Uneori este utilă utilizarea unor nume de variabile dinamice care pot fi declarate și utilizate în mod dinamic. O variabilă normală este declarată astfel:

<?php

$a = "hello";

?>

O variabilă dinamică ia valoarea unei variabile și o tratează ca și cum ar fi numele acesteia.

<?php

$$a = "world";

?>

Astfel s-au creat două variabile: o variabilă $a care are valoarea „hello” și o altă variabilă cu numele $hello căruia i s-a atribuit valoarea „world”. Pentru variabilele complexe se utilizează o sintaxă specială, încadrarea între acolade {}.

<?php

echo "$a ${$a}";

?>

Constante

O constantă este un identificator pentru o valoare simplă. Această valoare nu se poate modifica pe parcursul execuției scriptului. Identificatorul constantei este prin definiție case-sensitive și printr-o convenție se va nota întotdeauna cu litere mari. Numele unei constante respectă aceleași reguli ca și orice etichetă PHP. Un nume valid pentru o constantă începe întotdeauna cu o literă sau cu underscore, urmată de orice literă sau cifră.[5]

Sintaxa:

Pentru a defini o constantă se poate utiliza funcția define():

bool define ( string name, mixed value [, bool case_insensitive])

O constantă poate conține numai date scalare: boolean, integer, double, string. Valoarea unei constante se poate obține prin simpla specificare a numelui ei, fără ca numele constantei să fie precedată de semnul $.

<?php

define("CONSTANT", "Hello world.");

echo CONSTANT; // outputs "Hello world."

echo Constant; // outputs "Constant" and issues a notice.

?>

Diferențe între constante și variabile:

Constantele nu necesită existența semnului $ spre deosebire de variabile care trebuie să fie precedate de $.

Constantele pot fi definite doar utilizând funcția define (), nu printr-o simplă asignare ca în cazul variabilelor.

Constantele nu pot fi redefinite odată ce au fost declarate și inițializate.

Constantele pot conține doar valori scalare.

Constante predefinite:

PHP furnizează un număr mare de constante predefinite pentru orice script care rulează.

Există patru constante predefinite, speciale utilizate în PHP care își modifică semnificația în funcție de locul unde sunt utilizate în cadrul scriptului:

__LINE__ – numărul liniei curente din cadrul scriptului;

__FILE__ – calea și numele complet al fișierului;

__FUNCTION__ – numele funcției. A fost adăugată începând cu versiunea PHP 4.3.0;

__CLASS__ – numele clasei. A fost adăugată începând cu versiunea PHP 4.3.0;

4.4 EXPRESII

Expresiile constituie cea mai importantă parte al limbajului PHP. Cea mai simplă formă a unei expresii o constituie constantele și variabilele iar o forma mai complexă a expresiilor o reprezintă funcțiile. Funcțiile sunt expresii ce au valoarea egală cu valoarea returnată de ele. Aceste funcții nu au rolul doar de a returna o valoare ci și de a o prelucra. Valorile în PHP nu trebuie să fie doar de tipul întreg, PHP suportând trei tipuri scalare: integer, floating point și string. Deasemenea, PHP suportă și două tipuri de valori compuse (non-scalare): array și object. Toate aceste tipuri de date pot fi asignate variabilelor sau returnate de către funcții.

PHP este un limbaj orientat pe expresii, aproape orice scris în limbajul PHP reprezintă o expresie.

4.5 OPERATORI

În limbajul PHP se utilizează următoarele tipuri de operatori:

operatori aritmetici

operatori de atribuire

operatori la nivel de bit

operatori de comparare

operatori de incrementare/decrementare

operatori logici

operatori de control al erorilor

operatori de execuție

a)Operatori aritmetici

$a + $b adunare

$a – $b scădere

$a * $b înmulțire

$a / $b împărțire

$a % $b modulo

Rezultatul returnat de operatorul pentru împărțire „/” este întotdeauna de tipul float chiar dacă cei dori operanzi sunt de tipul întreg.

b)Operatori de atribuire

Operatorul principal de asignare este semnul egal (=).

$a = 3; //$a primeste valoarea 3

Pe lângă operatorul de asignare de bază există și alți operatori adiționali care permit utilizarea unei valori într-o expresie și apoi asignarea acestei valori la rezultatul expresiei.

$a += 5; //$a ia valoarea 8, adica 3 + 5.

$c = ($b = 4) + 5; //$b primeste valoarea 4, iar $c valoarea 9

c)Operatori la nivel de bit

$a & $b Și

$a | $b Sau

$a ^ $b Sau-Exclusiv

~ $a Not (Negare)

$a << $b Rotire la stânga (mută biții lui $a cu $b poziții spre stânga)

$a >> $b Rotire la dreapta (mută biții lui $a cu $b poziții spre dreapta)

d)Operatori de comparare

$a = = $b egal cu

$a = = = $b identic cu

$a != $b diferit

$a <> $b diferit

$a !== $b neidentic

$a < $b mai mic

$a > $b mai mare

$a <= $b mai mic sau egal

$a >= $b mai mare sau egal

e)Operatori de incrementare/decrementare

++$a Pre-incrementare (adună 1 la $a, apoi returnează $a)

$a++ Post-incrementare (returnează $a, apoi adună 1 la $a)

–$a Pre-decrementare (scade 1 din $a, apoi returnează $a)

$a– Post-decrementare (returnează $a, apoi scade 1 din $a)

f)Operatori logici

$a and $b Și

$a or $b Sau

$a xor $b Sau-Exclusiv

! $a Not (Negare)

$a && $b Și

$a || $b Sau

g)operatori de control al erorilor

PHP permite utilizarea unui operator pentru controlul erorilor notat @ utilizat în cazul expresiilor. Dacă acest operator precede o expresie, orice mesaj de eroare generat va fi ignorat.[6]

4.6 STRUCTURI DE CONTROL

Structurile de control reprezintă scheletul limbajelor de programare. PHP are incluse structurile de control necesare functionării unui limbaj.

Programele PHP iau decizii prin evaluare unor expresii conditionale și execută instrucțiuni bazate pe rezultatele acestor evaluării.

IF

Instrucțiunea condițională IF este una dintre cele mai importante instrucțiuni ale multor limbaje, inclusiv al limbajului PHP. Ea permite execuția condiționată a unei secvențe de program.

Sintaxa generală este:

if (expr){

instrucțiune;

}

Se va evalua valoarea booleană a expresiei (expr). Astfel dacă expresia are valoarea TRUE se va executa instrucțiunea din paranteză. În cazul în care expresia are valoarea FALSE instrucțiunea va fi ignorată.

ELSE

Uneori se dorește executarea unei expresii dacă o anumită condiție este satisfăcută și o altă expresie dacă acea condiție nu este satisfăcută.

Sintaxa generală este:

if (expr) {

instrucțiune1;

} else {

instrucțiune2;

}

Astfel dacă expresia are valoarea TRUE se va executa instrucțiunea 1, iar în cazul în care valoarea expresiei este FALSE se va executa instrucțiunea 2.

ELSEIF

Este asemănătoare instrucțiunii ELSE. În cazul în care expresia IF are valoarea FALSE, se va executa o altă instrucțiune, dar spre deosebire de ELSE, această instrucțiune se va executa doar în cazul în care expresia condițională specificată de ELSEIF are valoarea TRUE.

Sintaxa generală:

if (expresie1) {

instrucțiune1;

}

elseif (expresie2) {

instrucțiune2;

}

else {

instrucțiune3;

}

În cadrul unei expresii IF pot exista mai multe secvențe ELSEIF. Se va executa prima expresie ELSEIF cu valoare TRUE.

WHILE

WHILE este cea mai simplă instrucțiune de tip buclă care execută în mod repetat instrucțiunile asociate atât timp cât expresia while are valoare TRUE. Această valoare este verificată de fiecare dată la începutul buclei. În cazul în care la prima verificare valoarea expresiei este FALSE instrucțiunile asociate nu vor fi executate.

Sintaxa de bază este:

while (expr)

{

instrucțiune;

}

Secvența de execuție a unei instrucțiuni while este următoarea:

1.Se evaluează expresia test.

2.Dacă rezultatul este false, se trece la etapa 5.

3.Se execută corpul buclei.

4.Se trece la etapa 1.

5. Se părăsește bucla, prin executarea următoarei instrucțiuni secvențiale.

DO…WHILE

Instrucțiunea DO…WHILE este foarte asemănătoare cu instrucțiunea WHILE, diferența constând în momentul în care se realizează verificarea expresiei while. În cazul instrucțiunii DO…WHILE valoarea de adevăr a expresiei este evaluată la sfârșitul primei iterații, astfel încât se execută cel puțin o dată instrucțiunile asociate.

Sintaxa de bază este:

do {

instrucțiune;

} while (expresie);

Secvența de execuție a unei instrucțiuni do…while este următoarea:

1. Se execută corpul buclei.

2. Se evaluează expresia de test

3. Dacă rezultatul este adevărat, se trece la etapa 1.

4. Se încheie execuția buclei, prin executarea următoarei instrucțiuni secvențiale.

FOR

Instrucțiunea FOR este cea mai complexă instrucțiune iterativă din limbajul PHP.

for (expr1; expr2; expr3) {

instrucțiune; }

Instrucțiunea FOR include trei expresii, care apar între paranteze; fiecare expresie este separată de vecina sa printr-un caracter punct și virgulă. De asemenea, instrucțiunea for include o instrucțiune sau un grup de instrucțiuni, cunoscute sub numele de corpul instrucțiunii FOR.

Prima expresie este expresia de inițializare. Aceasta se execută atunci când PHP ajunge la instrucțiunea FOR. A doua expresie este expresia de test. Aceasta este o expresie condițională care indică dacă se execută sau nu corpul instrucțiunii, în general, face referire la variabila de ciclare. Expresia de test este evaluată pentru prima dată imediat după evaluarea expresiei de inițializare. Cea de-a treia expresie este expresia pas. În general, aceasta modifică una sau mai multe variabile la care se face referire în expresia test.

Secvența de execuție a unei instrucțiuni FOR este următoarea:

1. Se evaluează expresia de inițializare.

2. Se evaluează expresia test.

3. Dacă rezultatul evaluării expresiei test este false, se execută etapa 7.

4. Se execută corpul buclei.

5. Se evaluează expresia pas.

6. Se trece la etapa 2.

7. Se încheie execuția instrucțiunii for, prin executarea următoarei instrucțiuni secvențiale.

Fiecare dintre cele trei expresii poate să lipsească. Dacă expresia 2 lipsește, bucla se va repeta la infinit.

FOREACH

Instrucțiunea FOREACH a fost introdusă în limbaj începând cu PHP 4 și se utilizează numai în cazul iterațiilor privind tablourile.

Sintaxa de bază este:

foreach(array_expression as $value) statement

sau

foreach(array_expression as $key => $value) statement

În cazul primei sintaxe se va executa bucla peste tabloul dat de array_expression, la fiecare execuție valoarea elementului curent fiind asignată variabilei $value iar pointerul intern va fi iterat cu unu.

Cea de-a doua sintaxă funcționează asemănător, cu excepția faptului că în acest caz va fi asignată cheia elementului curent variabilei $key la fiecare execuție a buclei.

BREAK

Construcția BREAK termină execuția blocului curent for, foreach, while, do…while sau switch. Acceptă un argument numeric opțional care specifică numărul de structuri ce trebuie închise.

Exemplu:

$tab = tablou ('unu', 'doi', 'trei', 'patru', 'stop', 'cinci');

while (list (, $val) = each ($tab)) {

if ($val == 'stop') {

break;

}

echo "$val<br>\n";

}

CONTINUU

CONTINUU se folosește în cazul structurilor iterative pentru a sări peste o parte a buclei curente și pentru a continua execuția la începutul iterației următoare. Aceasta acceptă un argument numeric opțional care specifică numărul nivelelor buclei care nu se vor executa.

SWITCH

Este similar cu utilizarea a o serie de instrucțiuni IF pentru aceeași expresie. Cu toate acestea, dacă se dorește ca programul să aleagă dintr-un set de alternative care pot fi reprezentate prin valori întregi, instrucțiunea switch este o opțiune mai convenabilă.

Sintaxa de bază a instrucțiunii este:

switch (expresie) {

case 0:

instrucțiune;

break;

case 1:

instrucțiune;

break;

case 2:

instrucțiune;

break;

default:

instrucțiune;

}

Folosind această structură se poate compara în același bloc o variabilă cu alte variabile. Se va executa o declarație în cazul în care se va găsi o valoare care corespunde valorii expresiei switch. PHP va continua să execute codul până la sfârșitul blocului switch, sau până în momentul în care va întâlni un break.

Într-o secvență switch, condiția se va evalua doar o singură dată iar rezultatul se va compara cu fiecare caz în parte, spre deosebire de o secvență elseif unde condiția este evaluată în mod repetat. Astfel o secvență switch poate fi mult mai rapidă.

Un caz special reprezintă default care se va executa în situația în care nici un alt caz nu corspunde condiției switch. Default este în general ultimul caz.

DECLARE

Este folosită pentru a seta directivele de execuție ale unui bloc de cod.

Sintaxa generală este:

declare (directive) instrucțiune

Secțiunea „directive” permite specificarea modului de comportare a blocului de cod. Momentan doar o singură directivă este recunoscută: ticks care reprezintă un eveniment ce apare la fiecare N nivele de declarații executate în blocul declarare. Valoarea lui N se specifică utilizând ticks=N în secțiunea directive a blocului declarare. Evenimentul ce are loc la fiecare interval tick se specifică utilizând funcția register_tick_function().

RETURN

În cazul în care RETURN se va apela din interiorul unei funcții rezultatul va fi terminarea imediată a execuției funcției și returnarea argumentului ei ca valoare a funcției. În cazul în care nu este apelată din interiorul unei funcții, va avea ca efect terminarea execuției script-ului curent. Dacă acel script a fost inclus (include()) sau cerut (require()) atunci controlul este retrecut fișierului care a făcut includerea sau cererea iar valoarea dată de return se va returna ca valoare a lui include() sau require().[6]

5. INTERACȚIUNEA PHP-MySQL

PHP permite conectarea la diferite baze de date printre care:

dbase

FrontBase

Interbase

SQL Server

mSQL

MySQL

Oracle

Cea mai frecventă combinație o reprezintă PHP și MySQL.
Ideea pe care se bazeaza interacțiunea PHP – MySQL sau în general interacțiunea dintre PHP și o bază de date este aceea că permite ca informațiile care se doresc să apară pe site să fie prezente în baza de date. În acest fel informațiile pot fi actualizate ușor și prezentate într-o formă "dinamică" în cadrul site-ului. Utilizarea PHP cu MySQL se referă la trimiterea comenzilor SQL către serverul MySQL utilizând funcția mysql_query().

Există numeroase funcții PHP care se pot folosi pentru MySQL dintre care cele mai utilizate sunt:

mysql_connect – realizează o conexiune la server-ul MySQL;

mysql_select_db – selectează o bază de date de pe un server MySQL;

mysql_query – realizează o cerere SQL;

mysql_num_rows – returnează numărul de rezultate provenite din execuția instrucțiunii mysql_query

mysql_fectch_array – pune o înregistrare a rezultatului cererii SQL într-o matrice;

mysql_free_result – eliberează resursele utilizate de conexiunea curentă;

mysql_close – închide conexiunea curentă.

5.1 CONECTAREA LA BAZA DE DATE

Prima etapă al interacțiunii PHP-MySQL este stabilirea unei conexiuni la serverul de baze de date MySQL. Această conexiune este utilizată apoi ca punct de acces pentru orice comenzi utilizate ulterior. Sintaxa pentru conectarea la o bază de date este:

$db = mysql_connect(adresa, utilizator, parola);

Conexiunea la baza de date ($db) este stabilită utilizând trei argumente: adresa, numele de utilizator și parola. Adresa reprezintă IP-ul sau hostname-ul calculatorului pe care este instalată baza de date MySQL. Acesta poate fi același cu cel pe care ruleaza serverul de web (de obicei Apache sau IIS) sau un alt calculator. În cazul în care se gasește pe același calculator cu serverul de web se va folosi localhost. Numele de utilizator si parola vor fi cele setate pentru MySQL. Implicit acestea sunt nume de utilizator: root si fara parolă. Este recomandat ca aceste setări implicite să fie modificate.
  Functia mysql_connect returnează un număr de identificare a conexiunii în caz de succes sau false în caz de eroare:

<?php

$id = mysql_connect("localhost", "root", "")

or die("Nu ma pot conecta la MySQL!");

print ("Conectare reusita");

mysql_close($id);

?>

O conexiune la baza de date trebuie deschisă întotdeauna înainte de a o folosi.
În cazul în care nu ne putem conecta la baza de date funcția mysql_connect va returna false, iar în acest caz se va trece la executarea funcției die care va afișa mesajul din paranteză și va termina execuția scriptului.

După terminarea lucrului cu o bază de date conexiunea se va închide utilizând următoarea sintaxă:

mysql_close();

5.2 ALEGEREA BAZEI DE DATE

Înainte de a putea lucra cu o bază de date, această bază de date trebuie creată și selectată. Posibilitatea de a realiza acest lucru depinde de drepturile de acces la baza de date ale utilizatorilor care se conectează la serverul MySQL. Unor tipuri diferite de utilizatori le pot fi atribuite drepturi diferite pentru baza de date.

Pentru a crea o bază de date cu PHP, se va utiliza funcția mysql_query () și comanda SQL CREATE DATABASE:

mysql_query (‘CREATE DATABASE db’)

Selectarea bazei de date se realizează utilizând funcția:

mysql_select_db(baza_de_date, identificatorul_conexiunii);

Parametrii folosiți în acest caz vor fi numele bazei de date ales ți identificatorul returnat de către mysql_connect.

Deși crearea bazei de date se realizează doar o singură dată, ea va trebui întotdeauna selectată înainte de a putea rula orice alte interogări.

<?php

$id = mysql_connect("localhost", "root", "")

or die("Nu ma pot conecta la MySQL!");

$db = mysql_select_db("nume_db", $id)

or die("Nu gasesc o baza de date cu numele nume_db!");

mysql_close($id);

?>

Ca și în exemplul anterior, în cazul în care nu se poate selecta baza de date se va trece la execuția funcției die. [2]

5.3 ÎNTREȚINEREA BAZEI DE DATE

a) Inserarea unei înregistrări în baza de date

Procesul de inserare a unei înregistrări într-o bază de date este similar procesului de creare a unei baze de date, în ceea ce privește funcțiile utilizate dar interogarea SQL este diferită. Sintaxa generală este:

mysql_query(instrucțiune_sql, identificatorul_conexiunii);

Pentru a insera înregistrări se va utiliza comanda SQL INSERT folosind oricare dintre următoarele modele:

INSERT INTO nume_tabel values (‘valoare1’, ‘valoare2’, ‘valoare3’, etc.)

INSERT INTO nume_tabel (nume_coloană1, nume_coloană2, etc) values (‘valoare1’, ‘valoare2’, etc.)

Interogarea începe cu porțiunea INSERT INTO nume_tabel. Cel de-al doilea model este mai exact, precizându-se coloanele unde se vor insera valorile. Valorile sunt plasate între paranteze, fiecare valoare fiind încadrată de apostrofuri și separate cu virgule. Dacă valoarea care trebuie inserată este un număr, acesta nu trebuie plasat între apostrofuri, dar virgula este obligatorie.

Această instructiune va fi transmisă serverului MySQL care îl va executa și va returna rezultatul. În cazul mysql_query rezultatul va fi true, în caz de succes, sau false, în caz de eroare.    
b) Selectarea înregistrărilor

    Următorul proces din cadrul lucrului cu baze de date este selectarea înregistrărilor. Pentru ca rezultatul selecției să fie afișat în browser se va utiliza în continuare funcția mysql_query(), dar preluarea datelor este ușor diferită de inserarea lor. În cazul selectării înregistrărilor, pentru a se putea utiliza informația preluată, va trebui să fie atribuită unei variabile.

Sintaxa de bază pentru preluarea informațiilor din baza de date este reprezentată de interogarea SELECT. Aceasta nu va returna ca rezultat TRUE sau FALSE, ci va returna o listă a rezultatelor sau FALSE în caz de eroare.

$query= “SELECT nume_coloana FROM nume_tabelă”;

Cea mai ușoară interogare pentru citirea tabelelor este:

SELECT * FROM numetabelă

Asteriscul este echivalent cu afișarea tuturor înregistrărilor din toate coloanele tabelului. Dacă este nevoie de returnarea doar a anumitor coloane, se poate limita interogarea astfel:

SELECT nume, prenume FROM numetabel;

Această interogare solicită doar preluarea informației din două coloane (nume, prenume) dar nu limitează numărul de înregistrări care vor fi returnate, ci doar coloanele pentru respectivele linii.

O altă modalitate de restricționare a unei interogări este adăugarea unei condiții pentru limitarea liniilor returnate, prin utilizarea unei clauze WHERE:

SELECT * FROM numetabel WHERE (nume= ‘Ana’);

Astfel se va prelua informația din toate coloanele din tabelă, însă doar din liniile în care valoarea din coloana nume este egală cu Ana.

Principala diferență între preluarea și inserarea datelor într-o bază de date constă în modul în care se prelucrează interogarea. Se va dori atribuirea rezultatelor interogării la o variabilă:

$result = mysql_query ($query)

Variabila $result va indica liniile returnate în server-ul MySQL. Pentru a accesa mai multe linii de informație preluată, trebuie trecută această variabilă printr-un ciclu:

while ($row = mysql_fetch_aray ($result)) {

//se efectuează o acțiune cu $row

}

La fiecare iterație a ciclului, următoarea linie de informație din interogare este transformată într-o matrice numită $row.

c) Actualizarea înregistrărilor

Actualizarea înregistrărilor într-o bază de date se realizează utilizând interogarea UPDATE. Sintaxa de bază este:

UPDATE numetabel SET numecoloana1=valoare1, numecoloana2=valoare2… WHERE coloana=valoare;

În cazul în care valorile sunt șiruri, ele trebuie plasate între apostrofuri. Clauza WHERE se utilizează pentru a limita liniile afectate. În cazul în care nu se va folosi clauza WHERE vor fi actualizate toate înregistrările din baza de date.

Ex:

UPDATE numetabel SET nume= ‘Ana’ WHERE id=142

Pentru a testa dacă o actualizare s-a realizat, se poate utiliza funcția mysql_affected_rows() , care va returna numărul de înregistrări modificate.

d) Stergerea înregistrărilor

Eliminarea înregistrărilor dintr-o bază de date se realizează utilizând interogarea DELETE. Sintaxa de bază pentru o interogare de ștergere este:

DELETE FROM numetabel WHERE coloana=valoare

Clauza WHERE nu este obligatorie, dar dacă se omite se vor șterge toate înregistrările din tabelă. După ștergerea unei înregistrări nu mai există nici o cale de a o recupera. Ca măsură de siguranță, dacă se dorește ștergerea doar a unei singure înregistrări dintr-un tabel, se poate adăuga în interogare clauza LIMIT.

DELETE FROM numetabel WHERE coloana=valoare LIMIT 1

Această interogare garantează ștergerea a cel mult unei singure înregistrări. După definirea interogării, ea va fi executată utilizând tot funcția mysql_query ().

Pentru a vedea dacă interogarea a funcționat, se poate utiliza funcția mysql_affected_rows() care va returna numărul de linii afectate de interogare.

6. DESCRIEREA APLICAȚIEI

6.1 INTRODUCERE

Scopul principal al acestei lucrări a fost implementarea unei baze de date utilizând pentru crearea acesteia limbajul PHP și MySQL.

Aplicația are ca subiect evidența informatizată a firmelor client respectiv furnizor și a facturilor emise sau primite ale unei unități și cuprinde două părți:

EVIDENȚĂ FIRME- permite vizualizarea tuturor furnizorilor și clienților instituției, a datelor generale despre fiecare furnizor sau client respectiv căutarea unui anumit furnizor sau client după numele acestuia. Deasemenea, cuprinde un modul de administrare a datelor care permite adăugarea, editarea și ștergerea acestora.

EVIDENȚĂ FACTURI- oferă posibilitatea vizualizării tuturor facturilor emise de către instituție și a facturilor primite, precum și a detaliilor privind fiecare factură. Permite căutarea unei anumite facturi în funcție de:

– numele instituției care a emis factura sau pentru care s-a emis factura;

-numărul facturii;

-data emiterii respectiv primirii facturii.

În cadrul acestei secțiuni există posibilitatea de afișare a situației vânzărilor pentru o anumită dată și de vizualizare a balanței analitice cu privire la un anumit produs.

Cuprinde un modul de administrare a facturilor oferind posibilitatea adăugării noilor facturi emise sau primite, sau modificarea detaliilor unei anumite facturi și ștergerea facturilor existente.

6.2 PROIECTAREA BAZEI DE DATE

6.2.1 Descrierea și crearea bazei de date

Baza de date stochează informația referitoare la furnizorii și clienții societății, respectiv a facturilor emise sau primite de către aceasta. A fost creată utilizând comanda SQL:

CREATE DATABASE evidenta;

Este formată din 5 tabele:

– tabela admin;

– tabela domeniu;

– tabela firma;

– tabela antet;

– tabela conținut.

6.2.2 Descrierea și crearea tabelelor

tabela ADMIN

Tabela ADMIN cuprinde următoarele coloane:

-admin-conține numele de utilizator;

-pass-conține parola.

Informațiile conținute în tabela ADMIN permit autentificarea unui anumit utilizator care va avea drepturi de administrare a bazei de date.

tabela DOMENIU

Cuprinde următoarele coloane:

-id_d-coloana de identificare a fiecărui domeniu;

-domeniu-categoria din care face parte o anumită firmă.

Coloana id_d reprezintă un index care are proprietate de auto_increment fiecare înregistrare corespunzând unui anumit domeniu. În coloana domeniu se regăsesc două înregistrări: furnizori și clienți.

tabela FIRMA

Tabela FIRMA cuprinde următoarele coloane:

-cod_cl – coloana de identificare a unei anumite firme;

-nume_cl – numele firmei;

-id_d – coloana de identificare a domeniului;

-cod_fis – codul fiscal;

-adresa – adresa firmei;

-localitate – localitatea unde se găsește firma;

-reg_com – numărul din registrul comerțului;

-banca – banca;

-cont – contul bancar.

Coloana cod_cl reprezintă cheia primară și se autoincrementează odată cu inserarea unei noi firme în baza de date. Coloana id_d va specifica dacă firma este un furnizor sau un client al societății.

tabela ANTET

Această tabelă cuprinde următoarele coloane:

-id_fact – coloana de identificare a unei anumite facturi;

-nr_fact – numărul facturii;

-data – data facturii;

-id_d – numărul de identificare a unui anumit domeniu;

-cod_cl – numărul de identificare al unei anumite firme;

-term_i – termenul de încasare sau de plată al facturii.

Coloana id_fact este cheie primară cu proprietate de auto_increment la fiecare nouă factură introdusă. Coloanele nr_fact, data, term_i se completează cu datele existente pe factură. Coloana id_d va specifica domeniul clienți sau furnizori iar coloana cod_cl va preciza numele firmei căruia îi aparține factura.

tabela CONȚINUT

Această tabelă cuprinde următoarele coloane:

-cod_p – cod produs;

-id_fact – numărul de identificare pentru factură;

-denumire – denumire produs;

-UM – unitate de măsură;

-preț – preț unitar;

-cantitate

-TVA

Coloana cod_p reprezintă numărul de identificare al unui anumit produs, este cheie primară cu proprietate de autoincrementare odată cu inserarea unui nou produs în tabela conținut.

6.2.3 Legăturile dintre tabele

6.3 DESCRIEREA SCRIPTURILOR PHP

Pentru crearea legăturii cu baza de date se folosește limbajul PHP. Conexiunea cu serverul de baze de date se realizează prin crearea unui script de conectare cu următoarea sintaxă:

<?

mysql_connect ("localhost", "root", "")

or die("Nu se poate conecta");

mysql_select_db("evidenta");

?>

care specifică denumirea host-ului bazei de date, utilizatorul acesteia și numele bazei de date la care dorim să ne conectăm. Pentru a dispune de baza de date trebuie inclus acest fișier în fișierul în care dorim să o utilizăm.

Prima pagină a aplicației este o pagină php ce conține link-urile către cele două părți ale aplicației:

Evidență firme;

Evidență facturi.

Secțiunea EVIDENȚĂ FIRME

Prima pagină afișată în această secțiune este compusă din mai multe părți:

-header;

-left;

-corpul aplicației.

În partea header este afișat titlul și acest element rămâne neschimbat până la părăsirea secțiunii Evidență firme.

Partea left este creată printr-un script php (meniu.php) și conține următoarele elemente:

-căutare firmă;

-tip firmă;

-administrare firme.

Elementul căutare firmă oferă posibilitatea regăsirii unei anumite firme furnizor sau client precum și a detaliilor legate de firma respectivă prin specificarea numelui sau al unei părți din numele firmei. Numele introdus va fi transmis către un script php (căutare_firmă.php) care va selecta numele societății căutate din baza de date prin următoarele linii de cod:

<?

$sql="select cod_cl, nume_cl from firma where nume_cl like '%$nume_cl%'";

$resursa=mysql_query($sql);

if(mysql_num_rows($resursa)==0)

{

print'<I>Firma<FONTSIZE="3" COLOR="RED"> <U> <B> <em>'.$nume_cl.'</em> </B> </U> </FONT> nu apartine sectiunii <b> Firme</b> ! </I>';

}

?>

Astfel, în corpul aplicației se va afișa numele firmei căutate. Prin click pe numele firmei se pot vizualiza detaliile legate de aceasta.

Afișarea datelor legate de firmă se realizează printr-o instrucțiune SELECT:

<?

$cod_client=$_get['cod_cl'];

$sql="select cod_cl, nume_cl, cod_fis, adresa, localitate, reg_com, banca, cont from firma where cod_cl=".$cod_cl." ";

$resursa=mysql_query($sql);

$row=mysql_fetch_array($resursa);

?>

Un alt element al părții left este elementul TIP FIRMA care permite alegerea categoriei de firme ce se doresc a fi vizualizate: FURNIZORI sau CLIENTI. Afișarea acestui tabel se realizează prin selectarea din baza de date a celor două categorii de firme:

Prin alegerea unei anumite categorii se face legătura la o altă pagină în care se va afișa un tabel ce cuprinde numele și adresa tututor firmelor furnizor sau client.

Acest fapt se realizează printr-un script php (domeniu.php) prin care se vor selecta din baza de date firmele ce aparțin categoriei dorite:

<?

$sql="select cod_cl, nume_cl , adresa from firma, domeniu where firma.id_d=domeniu.id_d and domeniu.id_d=".$id_d." order by nume_cl asc limit 0, 100";

$resursa=mysql_query($sql);

while($row=mysql_fetch_array($resursa))

{

?>

Din această pagină, deasemenea, este posibilă vizualizarea datelor despre o anumită firmă prin click pe numele firmei respective.

Al treilea element al părții left este ADMINISTRARE FIRME care reprezintă o legătură către o pagină de autentificare. Această nouă pagină conține două input-uri: admin și parola.

Aceste date sunt transmise către un script php care le verifică și dacă acestea există în baza de date în tabela ADMIN utilizatorul va fi logat. În caz contrar este atenționat să reintroducă aceste date deoarece nu sunt corecte. În cazul necompletării acestor date, utilizatorul este atenționat să completeze ambele câmpuri.

În urma autentificării cu username-ul și parola corecte se va afișa o pagină ce permite administrarea secțiunii firme, cu următoarele elemente:

-adăugare;

-editare;

-ștergere.

Adăugarea unei noi firme se realizează astfel: se alege mai întâi categoria din care face parte, furnizori sau clienți, după care se introduc datele firmei. Actualizarea bazei de date cu noile date introduse se realizează printr-o instrucțiune INSERT:

<?

$sql = "insert into firma( `nume_cl`, `id_d`, `cod_fis`, `adresa`, `banca`, `localitate`, `reg_com` , `cont`) values ('$nume_cl', '$id_d', '$cod_fis', '$adresa', '$banca', '$localitate', '$reg_com', '$cont') ";

$resursa = mysql_query($sql) or die(mysql_error());

if($resursa)

{

print "<td>";

print'<td valign="top" align="center"><b><h2>Datele au fost introduse. </h2> </br><br>';

?>

Pentru editarea sau ștergerea unei anumite societăți din baza de date se va folosi opțiunea de EDITARE/ȘTERGERE. Primul pas necesar este alegerea categoriei în urma căruia se va afișa următorul tabel:

Prin alegerea opțiunii DELETE se va șterge firma selectată din baza de date.

<?

include ("conectare.php");

$cod_cl = $_GET['cod_cl'];

mysql_query("delete from firma where cod_cl=".$cod_cl) or die(mysql_error());

header("location: _index.php");

?>

În urma alegerii opțiunii EDIT se vor afișa datele firmei ce urmează a fi modificate. După actualizarea datelor se afișează un tabel ce prezintă detaliile modificate despre firmă. Editarea datelor se realizează prin două scripturi (edit_firma.php și update_firma.php) prin care se vor insera datele modificate în baza de date.

Sesiunea de administrare se încheie prin alegerea opțiunii LOGOUTși revenirea la pagina principală:

<br><a href="index.php">LOGOUT</a>

Secțiunea EVIDENȚĂ FACTURI

Pagina principală a secțiunii are aceeași structură cu cea a secțiunii EVIDENȚĂ FIRME cuprinzând:

-un header ce precizează titlul și care se va repeta pe parcursul întregii secțiuni fiind creat printr-un script (top.php) inclus în fiecare fișier.

-o parte left ce cuprinde elementele de căutare, de afișare și de administrare a facturilor;

-corpul aplicației unde se vor afișa datele dorite.

În cadrul evidenței facturilor căutarea unei anumite facturi se realizează după următoarele criterii:

-numele firmei care a emis sau pentru care s-a emis factura;

-numărul facturii;

-data facturii.

Pentru fiecare criteriu de căutare s-a creat un script php care utilizează o instrucțiune SELECT pentru a extrage datele dorite din baza de date. Ex:

<?

$sql="select id_fact, data from facturi where data like '%$data%' ";

$resursa=mysql_query($sql);

if(mysql_num_rows($resursa)==0)

{

print '<I>Data <FONT SIZE="3" COLOR="RED"> <U> <B> <em>'.$data.'</em> </B></U></FONT> nu apartine sectiunii <b>data</b>!</I>';

}

?>

În urma căutării după numele firmei se va afișa un tabel ce cuprinde toate facturile existente de la acea firmă.

Dacă se alege căutarea după numărul sau data facturii se va deschide o nouă fereastră care afișează datele regăsite. În toate cele trei cazuri, prin click pe numărul facturii dorite se pot vizualiza detaliile despre factură:

FACTURA FISCALA

Nr factura: 14

Data: 2004-03-19

Firma: S.C.ARCHIMINA S.R.L.

Termen incasare/plata:2004-03-29

Un alt element al acestei părți este elementul TIP FIRMĂ care permite vizualizarea tuturor facturilor emise către toate firmele prin alegerea opțiunii CLIENȚI sau a tuturor facturilor primite prin alegerea opțiunii FURNIZORI.

În urma alegerii unei anumite facturi din tabel se pot vizualiza detaliile despre factură. Acest fapt se poate realiza prin următoarea linie de cod:

<a href = " document.php? id_fact = < ? = $row ['id_fact']? > " > <font size="3" color="blue"> <?=$row['nr_fact']?>

prin care se va crea legătura din scriptul domeniu.php către scriptul document.php în care prin identificarea facturii după id se vor selecta mai întâi detaliile generale legate de factură din baza de date care vor apărea în antetul facturii: numărul, data și firma:

<?

include("conectare.php");

include("top.php");

include("meniu.php");

$id_f=$_POST['id_fact'];

$sql="select id_fact, nr_fact, data, nume_cl, term_i from antet, firma,domeniu where id_fact=".$id_fact." and firma.cod_cl=antet.cod_cl and antet.id_d=domeniu.id_d";

$resursa=mysql_query($sql);

$row=mysql_fetch_array($resursa);

?>

În cadrul acestei secvențe de cod se vor specifica elementele cod_cl și id_d din tabela antet ca fiind numerele de identificare pentru un anumit produs, firmă sau domeniu. Conținutul facturii se va afișa prin următoarea secvență SELECT:

<?

$sql="select denumire, UM, cantitate, pret, cantitate*pret*tva as 'TVA', cantitate*pret as 'valoare', valoare+TVA as 'total' from continut, antet where antet.id_fact=continut.id_fact and continut.id_fact=".$id_fact." order by denumire asc limit 0, 100";

$resursa=mysql_query($sql);

while($row=mysql_fetch_array($resursa))

{

?>

Astfel conținutul coloanelor „valoare” și „TVA” se va calcula în funcție de cantitate, preț și tva (%).

Tot în cadrul elementului left se găsesc alte două opțiuni:

situația vânzărilor;

balanța analitică.

Situația vânzărilor permite vizualizarea valorii vânzărilor de la o anumită dată grupate pe clienți. Prima etapă este introducerea datei pentru care se dorește afișarea situației vânzărilor. În urma acestei acțiuni se va afișa un tabel ce va cuprinde numele clientului, valoarea, TVA și TOTAL:

Valoarea vanzarilor din data: 2005-03-15

Balanța analitică prezintă situația totală a intrărilor și ieșirilor pentru un anumit produs pe o perioadă de o lună. Pentru a afișa balanța analitică se va alege luna dorită și produsul pentru care se dorește afișarea situației. În urma alegerii opțiunilor dorite va rezulta tabelul ce va cuprinde totalul intrărilor și ieșirilor pentru luna selectată.

Un alt element din pagina principală este elementul ADMINISTRARE FACTURI. Aceasta constituie un link către pagina de administrare a facturilor. Pagina principală a acestei secțiuni conține un formular de autentificare a utilizatorului unde în urma introducerii numelui de utilizator și al parolei se verifică existența acestor date în tabelul admin al bazei de date. În cazul în care datele sunt regăsite în tabel se va permite utilizatorului accesul la pagina index de administrare a facturilor.

Pagina de administrare cuprinde următoarele părți:

-adăugare;

-editare;

-ștergere.

Secțiunea ADĂUGARE permite introducerea în baza de date a noilor facturi printr-o instrucțiune INSERT. Prima etapă constă în alegerea categoriei FURNIZOR sau CLIENT și a firmei care a emis sau a primit factura. După alegerea opțiunii corecte se va completa formularul pentru introducerea noilor date. În urma introducerii datelor se va face legătura la o nouă pagină în care se va confirma introducerea acestora în baza de date și se va afișa un tabel ce cuprinde detaliile facturii nou introduse.

În cazul în care se dorește modificarea detaliilor sau ștergerea facturilor existente în baza de date se va alege opțiunea EDITARE/ȘTERGERE. În pagina principală a secțiunii ADMINSITRARE FACTURI se va alege categoria din care face parte. În urma acestei operații se afișează un tabel cu toate facturile de la furnizori sau de la clienți de unde se va putea selecta factura și operația dorită:

În cazul alegerii opțiunii de editare se va afișa o pagină ce cuprinde un formular cu detaliile despre factură ce urmează a fi modificate și un buton „Actualizează” ce permite introducerea datelor modificate în baza de date, precum și un buton „Renunță” pentru anularea opțiunii:

În urma actualizării se va confirma introducerea datelor modificate în baza de date și se va afișa tabelul ce va conține detaliile facturii.

Dacă se dorește ștergerea unei înregistrări se va alege opțiunea DELETE. Ștergerea unei anumite facturi din baza de date se realizează printr-un script , delete_factură.php:

<?

$id_fact = $_GET['id_fact'];

mysql_query("delete from antet where id_fact=".$id_fact) or die(mysql_error());

mysql_query("delete from continut where id_fact=".$id_fact) or die(mysql_error());

header("location: _index.php");

?>

Părăsirea secțiunii ADMINISTRARE se realizează prin alegerea opțiunii LOGOUT din partea stangă a paginii principale.

7. CONCLUZII

PHP este unul din cele mai importante limbaje de programare web open-source și server-side. Folosirea PHP poate fi văzută ca o alternativă gratuită la utilizarea unor limbaje comerciale cum sunt ASP de la Microsoft, ColdFusion de la Macromedia, sau chiar JSP de la Sun Microsystems. PHP este simplu de utilizat, fiind un limbaj structurat. Datorită modularității sale, poate fi folosit și pentru a dezvolta aplicații complexe, de sine-stătătorare. Probabil una din cele mai importante facilități ale limbajului este conlucrarea cu majoritatea bazelor de date relaționale, de la MySQL și până la Oracle, trecând prin MS Sql Server, PostgreSQL, sau DB2.

În lucrarea de față am prezentat modul în care limbajul PHP interacționează cu MySQL. Mai întâi am precizat principalele noțiuni referitoare la bazele de date relaționale și importanța acestora în ceea ce privește îmbunătățirea controlulului, accesibilității și securității datelor. În continuare am descris caracteristicile generale ale fiecărui limbaj făcând prima dată referire la limbajul SQL, la modul de instalare și conectare la server-ul MySQL și principalele operații asupra unei baze de date.

În următorul capitol am prezentat limbajul PHP, sintaxa limbajului, tipurile de date, principalii operatori și structurile de control ale limbajului după care am descris modul în care limbajul PHP conlucrează cu baza de date.

Aplicația realizată ilustrează avantajele utilizării limbajului PHP cu server-ul de baza de date MySQL. Scripturile PHP create permit accesul la baza de date și efectuarea a diferite operații asupra datelor prin trimiterea comenzilor SQL către serverul MySQL.

Datorită calităților sale, simplitate, eficacitate, independență față de platformă, limbajul PHP căștigă tot mai mult teren în rândul programatorilor oferind posibilități nenumărate. PHP este acum liderul de necontestat al instrumentelor de programare dinamică din Web și a început să se extindă dincolo de domeniul dezvoltării aplicațiilor Web.

8. BIBLIOGRAFIE

Ioan Despi, Gheorghe Petrov, Teoria generală a bazelor de date, Editura Mirton, Timișoara, 2000.

Chris Fehily, SQL, Editura All, București, 2004

Felicia Ionescu, Baze de date relaționale și aplicații, Editura Tehnică, București, 2004;

Larry Ullman, PHP pentru World Wide Web, Editura Teora, București, 2004

Bill McCarty, PHP4, Editura Teora, București, 2002

PHP Manual – http://www.php.net/manual/en

MySQL Reference Manual – http://dev.mysql.com/doc/mysql/en/index.html

http: // www.phpromania.net

http: // www.rophp.net

http: // www.w3schools.com/sql

http: // www.w3schools.com/php

http://www.DMCInsights.com/phpvqs2/

Similar Posts