tehnologii web - runceanu.ro filecurs 13. verificarea ... 11. determinarea bazelor de date gazduite...

68
Lector univ. dr. Adrian Runceanu Tehnologii Web 1 Universitatea Constantin Brâncuşi” din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu

Upload: ngoanh

Post on 10-Apr-2018

223 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Lector univ. dr. Adrian Runceanu

Tehnologii Web

1

Universitatea “Constantin Brâncuşi” din Târgu-JiuFacultatea de Inginerie

Departamentul de Automatică, Energie şi Mediu

Page 2: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 13

MySQL (partea II)

2

Page 3: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 13

1. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

3

Page 4: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

1. Verificarea interogarilor care nu returneaza rânduri de tabel

Din punctul de vedere al limbajului PHP, exista doua categorii de interogari SQL, ambele fiind emise folosind functia mysql_query():

1. Interogarile SELECT, care returneaza rânduri ale unui tabel

2. Interogarile UPDATE, INSERT si DELETE, care nu returneaza rânduri ale unui tabel

Tehnologii WEB

4

Page 5: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

• Pentru a verifica daca o interogare UPDATE, INSERT sau DELETE a avut efectul dorit, se poate folosi functia mysql_affected_rows(), care returneaza numarul rândurilor afectate de interogarea cea mai recenta.

• O alta functie utila este mysql_insert_id().

• Cand se introduce un rand intr-un tabel a carui cheie primara este de tipul AUTO_INCREMENT, functia mysql_insert_id() determina valoarea cheii primare atribuite de MySQL.

Tehnologii WEB

5

Page 6: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

• Functia returneaza valoarea zero daca interogarea precedenta nu a generat o valoare AUTO_INCREMENT.

• Ca atare, functia trebuie apelata la putin timp dupa interogarea care a inserat rândul in tabel, astfel încât o interogare ulterioara sa nu modifice rezultatul.

• Exemplu de utilizare a functiilor mysql_affected_rows() si mysql_insert_id() impreuna cu interogarea INSERT (care adauga randuri in tabel).

• Folosim baza de date "lucrudb" si tabelul "carti", create in cursul anterior

Tehnologii WEB

6

Page 7: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

<?php $dbh = mysql_connect("localhost", "Costica", "mypass")

or die("Unable to connect to MySQL");$selectdb = mysql_select_db('lucrudb'); if (!$selectdb)

echo "Baza de date lucrudb nu a putut fi selectata deoarece : ". mysql_errno(). " : ". mysql_error(); $sql = "INSERT INTO carti (nume, autor, gen, data_intrare, pret) VALUE ('Carte1', 'Autor1', 'Educativ', '2008-9-16', 11.00)";

$insert = mysql_query($sql);

Tehnologii WEB

7

Page 8: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

if ($insert) echo "Datele au fost adaugate in tabelul carti <br />"; else

echo "Datele nu au fost adaugate in tabelul carti deoarece : ". mysql_errno(). " : ".mysql_error(); $nranduri = mysql_affected_rows(); $id = mysql_insert_id(); if ($nranduri == -1) {

echo "INSERT nu a putut sa adauge datele"; } else

echo "Au fost adaugate $nranduri randuri, cheia primara = $id"; mysql_close();

?>

Tehnologii WEB

8

Page 9: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

• Dupa ce s-a facut conectarea la serverul MySQL si s-a reusit selectarea bazei de date:

1. variabila "$sql" contine comanda SQL pentru introducerea unui nou rand in tabelul "carti",

2. variabila "$insert", prin intermediul functiei mysql_query($sql) introduce datele in baza de date,

3. variabila "$nranduri" preia de la functia mysql_affected_rows() numarul de randuri afectate (aici introduse)

4. iar variabila "$id" va avea valoarea cheii primare atribuite de MySQL.

• Daca nu apare nici o eroare, rezultatul afisat de acest script este urmatorul:

• Datele au fost adaugate in tabelul carti Au fost adaugate 1 randuri, cheia primara = 1

Tehnologii WEB

9

Page 10: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

• Functia mysql_affected_rows() numara numai rândurile efectiv modificate de catre o interogare UPDATE.

• Rândurile în cazul carora vechea si noua valoare din coloana sunt identice nu se numara printre rândurile afectate.

• De asemenea, o interogare DELETE care nu contine o clauza WHERE va determina functia mysql_affected_rows() sa returneze valoarea zero, indiferent de numarul rândurilor sterse din tabel.

• O modalitate simpla, de a determina daca stergerea tuturor rândurilor unui tabel a reusit consta în a emite o interogare care returneaza numarul rândurilor existente în tabel.

Tehnologii WEB

10

Page 11: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

De exemplu:

<?php $sql = "SELECT COUNT(id) FROM carti"; $nr = mysql_query($sql); echo $nr;

?>

Daca interogarea returneaza valoarea zero, demonstreaza stergerea tuturor rândurilor din tabel.

Tehnologii WEB

11

Page 12: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 13

1. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

12

Page 13: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

2. Prelucrarea rezultatelor interogarilor SELECT

• Interogarile SELECT returneaza ca rezultate rânduri de tabel.

• Rândurile unui tabel sunt incluse într-o structura de date numita "set de rezultate".

• Prelucrarea setului de rezultate returnat de o interogare SELECT implica parcurgerea rândurilor setului de rezultate.

• O modalitate de parcurgere a rândurilor unui set de rezultate este prin utilizarea unei instructiuni "for".

Tehnologii WEB

13

Page 14: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

1. Întâi se obtine numarul de randuri folosind functia mysql_num_rows(), transferând ca argument valoarea returnata de functia mysql_query().

2. Se scrie o instructiune "for" care parcurge fiecare rand folosind ca limita numarul de rânduri obtinut anterior,

3. Apoi, in interiorul instructiunii "for" se foloseste functia mysql_fetch_row() care returneaza o valoare ce reprezinta un tablou alcatuit din toate coloanele rândului curent (tabloul foloseste indexuri intregi, unde valoarea primului index este egala cu zero).

4. Pentru a prelucra coloanele stocate în tablou, se foloseste o instructiune "foreach", care elimina necesitatea existentei unui index explicit al buclei.

Tehnologii WEB

14

Page 15: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Exemplu care afiseaza valoarea din fiecare coloana a tabelului: <?php

$interogare = "SELECT * FROM carti"; $rezultat = mysql_query($interogare); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } $nr = mysql_num_rows($rezultat);

// Functia mysql_fetch_row() se poate folosi pentru a obtine urmatorul rând din setul de rezultate, astfel:

for ($i = 0; $i < $nr; $i++) { $rand = mysql_fetch_row($rezultat); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } foreach ($rand as $coloana) {

echo "<br /> $coloana"; } }

?> Tehnologii WEB

15

Page 16: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

• Functia mysql_fetch_row() returneaza true daca un set de rezultate contine rânduri neprelucrate, respectiv false în caz contrar.

• De aceea, în general este mai convenabil sa se evite aceasta metoda de folosire a instructiunii "for" impreuna cu functia mysql_num_rows() pentru a parcurge tabelul, in schimb, o alta metoda recomandata pentru parcurgerea fiecarei linii din tabel este folosirea unei instructiuni "while".

Tehnologii WEB

16

Page 17: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Exemplul de mai jos, care de data aceasta, in locul instructiunii "for" foloseste o instructiune "while":

<?php $interogare = "SELECT * FROM carti"; $rezultat = mysql_query($interogare); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } while ($rand = mysql_fetch_row($rezultat)) {

if (mysql_errno()) { echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />";

} foreach ($rand as $coloana) {

echo "| $coloana |"; } echo "<br />";

} ?>

Tehnologii WEB

17

Page 18: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Daca in tabelul "carti" avem trei randuri, exemplul de mai sus va afisa urmatorul rezultat:

| 1 || Carte1 || Autor1 || Educativ || 2008-09-15 || 11.00 || 2 || Carte2 || Autor2 || Aventura || 2008-09-15 || 11.50 | | 3 || Carte3 || Autor3 || Romantic || 2008-09-16 || 12.00 |

• Daca doriti sa obtineti acces la valoarea unei anumite coloane, puteti face referire la elementul din tablou folosind o cheie a tabloului.

• De exemplu, daca rezultatul functiei mysql_fetch_row() este stocat în variabila "$rand", puteti obtine acces la prima coloana folosind sintaxa "$rand[0]", la a doua coloana folosind sintaxa "$rand[1]" etc.

Tehnologii WEB

18

Page 19: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

• Daca vi se pare incomod sa lucrati astfel cu indici numerici, puteti obtine rândurile tabelului folosind functia mysql_fetch_array(), care returneaza un tablou asociativ.

• Valorile cheilor din tablou le reprezinta numele coloanelor din setul de rezultate.

• Ca si functia mysql_fetch_row(), functia mysql_fetch_array() returneaza false daca nu mai exista rânduri în setul de rezultate.

Tehnologii WEB

19

Page 20: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Un exemplu de utilizare a functiei mysql_fetch_array():

<?php $interogare = "SELECT * FROM carti"; $rezultat = mysql_query($interogare); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } while ($rand = mysql_fetch_array($rezultat, MYSQL_ASSOC)) {

if (mysql_errno()) { echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; }

foreach ($rand as $nume => $coloana) { echo "| $nume => $coloana |";

} echo "<br />";

} ?>

Tehnologii WEB

20

Page 21: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

La executie, exemplul anterior afiseaza numele si valoarea fiecarei coloane rezultate, astfel:

| id => 1 || nume => Carte1 || autor => Autor1 || gen => Educativ || data_intrare => 2008-09-15 || pret => 11.00 |

| id => 2 || nume => Carte2 || autor => Autor2 || gen => Aventura || data_intrare => 2008-09-15 || pret => 11.50 |

| id => 3 || nume => Carte3 || autor => Autor3 || gen => Romantic || data_intrare => 2008-09-16 || pret => 12.00 |

Tehnologii WEB

21

Page 22: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Daca doriti sa obtineri accesul la valoarea unei anumite coloane, folositi cheia cu numele coloanei.

De exemplu:

echo "<br /> $rand[autor]";

Tehnologii WEB

22

Page 23: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

• Cel de-al doilea argument al functiei mysql_fetch_array()este optional.

• Totusi, daca nu specificati MYSQL_ASSOC ca valoare a argumentului, PHP returneaza un tablou in care valoarea cheilor vor fi numerele si numele coloanelor.

• Functia mysql_insert_id(), prezentata mai la inceputul cursului, poate returna un rezultat incorect pentru coloanele MySQL de tipul BIGINT

• [BIGINT este un tip de valoare care suporta numere cu 20 de cifre, folosit pentru campurile integer (spre deosebire de MEDIUMINT care suporta numere de la 0 la 16.777.215 (3 bytes)) sau INT care suporta numerele de la 0 la 4.294.967.295 (4 bytes)].

Tehnologii WEB

23

Page 24: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

• Dupa efectuarea unei interogari INSERT, in locul functiei mysql_insert_id() se poate folosi functia LAST_INSERT_ID(), aceasta returneaza valoarea atribuita de MySQL unei coloane AUTO_INCREMENT, indiferent de tipul coloanei.

• Mai mult, apelurile ulterioare in script la functii MySQL nu afecteaza rezultatul returnat de LAST_INSERT_ID(), care este afectat numai de operatiile INSERT în care sunt implicate coloane AUTO_INCREMENT.

Tehnologii WEB

24

Page 25: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Exemplu care prezinta modul de obtinere a valorii LAST INSERT ID():

<?php $sql = "INSERT INTO carti (nume, autor, gen, data_intrare, pret) VALUE ('Carte3', 'Autor3', 'Gen3', '2008-9-16', 8.30)"; $insert = mysql_query($sql); if (!$insert) {

echo "<br /> Comanda INSERT a esuat: ". mysql_errno(). " : ". mysql_error(). "<br />"; }

Tehnologii WEB

25

Page 26: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

$interogare = "SELECT LAST_INSERT_ID() FROM carti"; $rezultat = mysql_query($interogare); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } $rand = mysql_fetch_row($rezultat); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } echo "<br /> Ultimul ID repartizat: $rand[0]"; mysql_close();

?> Tehnologii WEB

26

Page 27: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

• Dupa executarea acestui script, daca nu apare vreo eroare, rezultatul afisat va fi de genul:

Ultimul ID repartizat: 3

• Functia last_insert_id() returneaza rezultatul corect numai dupa ce a fost efectuata o comanda INSERT

Tehnologii WEB

27

Page 28: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 13

1. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

28

Page 29: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

3. Obtinerea numarului coloanelor dintr-un tabel MySQL

• Pentru a obtine numarul coloanelor dintr-un set de rezultate, utilizati functia

mysql_num_fields()

• Aceasta foloseste ca argument valoarea returnata de functia mysql_query().

• Exemplu in care functia mysql_num_fields() determina numarul coloanelor dintr-un set de rezultate care contin rândurile selectate folosind specificatorul SQL pentru câmpuri "*":

Tehnologii WEB

29

Page 30: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

<?php $sql = "SELECT * FROM nume_tabel";$rezultat = mysql_query($sql); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } $nr_campuri = mysql_num_fields($rezultat); echo "<br /> Numar campuri: $nr_campuri"; mysql_close();

?>

Tehnologii WEB

30

Page 31: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 13

1. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

31

Page 32: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

4. Obtinerea numelui unei coloane

• Pentru a obtine numele unei coloane dintr-un tabel MySQL, folositi functia

mysql_field_name()

• Aceasta returneaza numele coloanei din setul de rezultate.

• Functia preia doua argumente: • valoarea returnata de functia mysql_query()• indexul coloanei care va fi descrisa

• Indexul asociat cu prima coloana este 0, indexul asociat celei de-a doua coloane este 1, etc.

Tehnologii WEB

32

Page 33: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Exemplu care determina numele primei coloane dintr-un tabel MySQL:

<?php $sql = "SELECT * FROM nume_tabel";$rezultat = mysql_query($sql); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } $nume = mysql_field_name($rezultat, 0); echo "<br /> Coloana 1 : $nume";mysql_close();

?>

Tehnologii WEB

33

Page 34: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 13

1. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

34

Page 35: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

5. Obtinerea lungimii unei coloane

• Pentru a obtine lungimea unei coloane dintr-un tabel MySQL, folositi functia

mysql_field_len()• Aceasta returneaza lungimea maxima a coloanei din setul de rezultate.

• Functia preia doua argumente: • valoarea returnata de functia mysql_query()• si indexul coloanei care va fi descrisa

• Indexul asociat cu prima coloana este 0, indexul asociat celei de-a doua coloane este 1, etc.

Tehnologii WEB

35

Page 36: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Exemplu care determina lungimea maxima a coloanei 2 dintr-un tabel MySQL:

<?php $sql = "SELECT * FROM nume_tabel";$rezultat = mysql_query($sql); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } $lungime = mysql_field_len($rezultat, 1);echo "<br /> Lungime Coloana 2 : $lungime"; mysql_close();

?>

Tehnologii WEB

36

Page 37: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 13

1. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

37

Page 38: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

6. Obtinerea indicatorilor MySQL asociati unei coloane

• Pentru a obtine indicatorii SQL asociati unei coloane dintr-un tabel MySQL, folositi functia

mysql_field_flags()

• Aceasta preia doua argumente: • valoarea returnata de functia mysql_query() • si indexul coloanei care va fi descrisa

• Indexul asociat cu prima coloana este 0, indexul asociat celei de-a doua coloane este 1, etc.

Tehnologii WEB

38

Page 39: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Functia mysql_field_flags() raporteaza urmatorii indicatori: • AUTO_INCREMENT • BINARY • BLOB • ENUM • MULTIPLE_KEY • NOT_NULL • PRIMARY_KEY • TIMESTAMP • UNIQUE_KEY • UNSIGNED • ZEROFILL

• Daca la o coloana sunt asociati mai multi indicatori, fiecare indicator este separat de vecinii sai prin intermediul unui singur spatiu.

Tehnologii WEB

39

Page 40: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Exemplu care determina indicatorii asociati primei coloane dintr-un tabel MySQL:

<?php $sql = "SELECT * FROM nume_tabel";$rezultat = mysql_query($sql); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } $indicatori = mysql_field_flags($rezultat, 0);echo "<br /> Indicatorii Coloanei 1 : $indicatori"; mysql_close();

?>

Tehnologii WEB

40

Page 41: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 13

1. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

41

Page 42: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

7. Obtinerea tipului MySQL al unei coloane

• Pentru a obtine tipul MySQL al unei coloane dintr-un tabel MySQL, folositi functia

mysql_field_type()• Aceasta preia doua argumente:

• valoarea returnata de functia mysql_query()• si indexul coloanei care va fi descrisa

• Indexul asociat cu prima coloana este 0, indexul asociat celei de-a doua coloane este 1, etc.

• Principalele tipuri MySQL returnate de functia mysql_field_type() sunt prezentate in cursul anterior, in tabelul "Principalele tipuri de date din MySQL".

Tehnologii WEB

42

Page 43: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Exemplu care determina tipul primei coloane dintr-un tabel MySQL:

<?php $sql = "SELECT * FROM nume_tabel";$rezultat = mysql_query($sql); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } $tip = mysql_field_type($rezultat, 0);echo "<br /> Tip Coloana 1 : $tip";mysql_close();

?>

Tehnologii WEB

43

Page 44: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 13

1. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

44

Page 45: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

8. Determinarea tabelului MySQL asociat unei coloane

• Pentru a determina tabelul MySQL (daca exista) asociat unei anumite coloane, folositi functia

mysql_field_table()• Aceasta preia doua argumente:

• valoarea returnata de functia mysql_query()• si indexul coloanei care va fi descrisa

• Indexul asociat cu prima coloana este 0, indexul asociat celei de-a doua coloane este 1, etc.

• În cazul în care coloana contine o valoare calculata sau daca respectiva coloana nu este asociata în alt mod cu un tabel MySQL, functia returneaza un sir vid.

Tehnologii WEB

45

Page 46: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Exemplu care determina tabelul asociat primei coloane din setul de rezutate:

<?php $sql = "SELECT * FROM nume_tabel";$rezultat = mysql_query($sql); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } $tabel = mysql_field_table($rezultat, 0); echo "<br /> Nume tabel : $tabel";mysql_close();

?>

Tehnologii WEB

46

Page 47: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 13

1. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

47

Page 48: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

9. Obtinerea structurii complete a setului de rezultate

• Daca doriti obtinerea mai multor caracteristici ale setului de rezultate, o functie utila poate fi:

mysql_fetch_field()• Aceasta functie returneaza un obiect ale carui proprietati contin o

varietate de informatii cu privire la coloana unui tabel MySQL.• Proprietatile sunt urmatoarele:

• blob - are valoarea 1 în cazul în care coloana este de tip BLOB • max_length - lungimea maxima a coloanei; • multiple_key - are valoarea 1 în cazul în care coloana este o cheie non-unica • name - numele coloanei • not_null - are valoarea 1 în cazul în care coloana nu poate contine valoarea NULL

Tehnologii WEB

48

Page 49: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

• numeric - are valoarea 1 în cazul în care coloana este numerica • primary_key - are valoarea 1 în cazul în care coloana este o cheie

primara • table - numele tabelului MySQL caruia îi apartine coloana • type - tipul MySQL al coloanei • unique_key - are valoarea 1 în cazul în care coloana este o cheie

unica • unsigned - are valoarea 1 în cazul în care coloana este de tip

UNSIGNED • zerofill - are valoarea 1 în cazul în care coloana este completata

cu zerouri • functia mysql_fetch_field() preia doua argumente: valoarea

returnata de functia mysql_query() si indexul coloanei care va fi descrisa.

• Indexul asociat primei coloane este 0, indexul asociat celei de-a doua coloane este 1, etc.

Tehnologii WEB

49

Page 50: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Exemplu care prezinta modul de obtinere si descriere a structurii complete a setului de rezultate pentru prima coloana dintr-un tabel MySQL:

<?php $sql = "SELECT * FROM nume_tabel"; $rezultat = mysql_query($sql); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } $info = mysql_fetch_field($rezultat, 0); echo "<br /> Coloana 1: "; echo "<PRE> blob: $info->blob max_length: $info->max_length multiple_key: $info->multiple_key name: $info->name

Tehnologii WEB

50

Page 51: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

not_null: $info->not_null numeric: $info->numericprimary_key: $info->primary_keytable: $info->table type: $info->type unique_key: $info->unique_keyunsigned: $info->unsigned zerofill: $info->zerofill </PRE>"; mysql_close();

?>

Tehnologii WEB

51

Page 52: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Pentru a obtine aceste proprietati pentru toate coloanele din tabel, folositi o instructiune "for", dupa exemplul de mai jos, care parcurge fiecare coloana, folosind ca limita a numarului de coloane valoarea returnata de functia mysql_num_fields()

<?php $sql = "SELECT * FROM nume_tabel"; $rezultat = mysql_query($sql); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; }

Tehnologii WEB

52

Page 53: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

$nr_campuri = mysql_num_fields($rezultat);

for ($i=0; $i< $nr_campuri; $i++) { echo "<br /> Coloana $i: ";

$info = mysql_fetch_field($rezultat); if ($info) {

echo "<PRE> blob: $info->blob max_length: $info-

>max_length multiple_key: $info-

>multiple_key name: $info->name not_null: $info->not_null

Tehnologii WEB

53

numeric: $info->numeric primary_key: $info->primary_key

table: $info->table type: $info->type unique_key: $info->unique_key unsigned: $info->unsigned zerofill: $info->zerofill </PRE>"; } else {

echo "Necunoscut"; }

} mysql_close(); ?>

Page 54: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 13

1. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

54

Page 55: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

10. Accesul non-secvential la coloanele unui set de rezultate

• Functiile mysql_fetch_row() si mysql_fetch_array()returneaza, în general, rândurile dintr-un set de rezultate în mod secvential, incepand de la primul rand al tabelului.

• Totusi, functia mysql_data_seek() permite obtinerea accesului la rândurile unui set de rezultate într-o maniera non-secventiala.

Tehnologii WEB

55

Page 56: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

10. Accesul non-secvential la coloanele unui set de rezultate

• Functia are forma: mysql_data_seek(rezultat, numar_rand)

• Unde "rezultat" este valoarea returnata de functia mysql_query(), iar "numar_rand" este indexul rândului la care doriti sa obtineti accesul.

• Primul rând al tabelului este numerotat cu 1, al doilea cu 2,etc.

• Functia returneaza true daca executia reuseste, respectiv false în caz contrar.

• Apoi, o invocare ulterioara a functiei mysql_fetch_row()sau a functiei mysql_fetch_array() va returna rândul din pozitia specificata in functia mysql_data_seek().

Tehnologii WEB

56

Page 57: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Exemplul urmator obtine accesul la al treilea rând al setului de rezultate returnat de o interogare anterioara:

<?php $sql = "SELECT * FROM nume_tabel"; $rezultat = mysql_query($sql); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } $ok = mysql_data_seek($rezultat, 3); if (!$ok) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } $rand = mysql_fetch_array($rezultat, MYSQL_ASSOC);foreach ($rand as $coloana) {

echo "| $coloana |"; } mysql_close();

?>Tehnologii WEB

57

Page 58: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 131. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

58

Page 59: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

11. Determinarea bazelor de date gazduite de un server MySQL

• Pentru a determina bazele de date gazduite de un server MySQL la care aveti acces, utilizati functia:

mysql_list_dbs()• Functia returneaza un set de rezultate alcatuit din numele

bazelor de date gazduite. • Puteti determina numarul rândurilor din setul de rezultate

utilizand functia mysql_num_rows(), asa cum procedati în cazul unui set de rezultate normal.

• Cu toate acestea, trebuie sa preluati rândurile folosind functia mysql_tablename(), care preia ca argumente valoarea returnata de functia mysql_list_dbs() si numarul rândurilor care vor fi preluate.

• Rândurile sunt numerotate începând de la 0.

Tehnologii WEB

59

Page 60: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Exemplu care prezinta modul de afisare a numelor bazelor de date gazduite:

<?php $dbh = mysql_connect( "localhost", "nume_user", "parola")

or die("Unable to connect to MySQL"); $dblist = mysql_list_dbs(); $nr = mysql_num_rows($dblist); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } for ($i=0; $i<$nr; $i++) {

echo "<br />". mysql_tablename($dblist, $i); } mysql_close();

?>

Tehnologii WEB

60

Page 61: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 13

1. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

61

Page 62: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

12. Determinarea tabelelor incluse într-o baza de date MySQL

• Pentru a obtine o lista a tabelelor incluse într-o baza de date specificata, folositi functia

mysql_list_tables()

• Aceasta foloseste ca argument numele bazei de date si returneaza un set de rezultate similar celui returnat de mysql_list_dbs().

• Pentru a obtine acces la lista cu tabele, parcurgeti setul de rezultate cu ajutorul unei instructiuni "for" in cadrul careia utilizati functia mysql_tablename().

Tehnologii WEB

62

Page 63: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Exemplu care prezinta modul de obtinere si afisare a listei tabelelor din baza de date "lucrudb":

<?php $dbh = mysql_connect( "localhost", "nume_user", "parola")

or die("Unable to connect to MySQL"); $tabele = mysql_list_tables("lucrudb"); $nr = mysql_num_rows($tabele); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } for ($i=0; $i<$nr; $i++) {

echo "<br />". mysql_tablename($tabele, $i); } mysql_close();

?>

Tehnologii WEB

63

Page 64: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Curs 131. Verificarea interogarilor care nu returneaza rânduri de tabel2. Prelucrarea rezultatelor interogarilor SELECT3. Obtinerea numarului coloanelor dintr-un tabel MySQL4. Obtinerea numelui unei coloane5. Obtinerea lungimii unei coloane6. Obtinerea indicatorilor MySQL asociati unei coloane7. Obtinerea tipului MySQL al unei coloane8. Determinarea tabelului MySQL asociat unei coloane9. Obtinerea structurii complete a setului de rezultate10. Accesul non-secvential la coloanele unui set de rezultate11. Determinarea bazelor de date gazduite de un server MySQL12. Determinarea tabelelor incluse într-o baza de date MySQL13. Determinarea coloanelor incluse într-un tabel

Tehnologii WEB

64

Page 65: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

13. Determinarea coloanelor incluse într-un tabel

• Pentru a obtine o lista a coloanelor incluse într-un tabel, utilizati functia:

mysql_list_fields()

• Aceasta returneaza un set de rezultate alcatuit din numele coloanelor tabelului specificat, foloseste ca argumente numele bazei de date si numele tabelului.

• Exemplul urmator prezinta modul de obtinere a numelui coloanelor din tabelul "carti", folosind functia mysql_list_fields():

Tehnologii WEB

65

Page 66: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

<?php $dbh = mysql_connect( "localhost", "nume_user", "parola")

or die("Unable to connect to MySQL");$coloane = mysql_list_fields("lucrudb", "carti"); $nr = mysql_num_fields($coloane); if (mysql_errno()) {

echo "<br />". mysql_errno(). " : ". mysql_error(). "<br />"; } for ($i=0; $i<$nr; $i++) {

echo "<br />". mysql_field_name($coloane, $i); } mysql_close();

?>

Tehnologii WEB

66

Page 67: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

• Daca in locul numelui coloanelor doriti sa obtineti alte informatii despre coloanele dintr-un tabel MySQL, folositi in locul functiei mysql_field_name() din interiorul instructiunii "for", una din functiile:

1. mysql_fetch_fields()2. mysql_field_flags()3. mysql_field_len()4. mysql_field_type()

Tehnologii WEB

67

Page 68: tehnologii web - runceanu.ro fileCurs 13. Verificarea ... 11. Determinarea bazelor de date gazduite de un server MySQL 1. ... mysql_query($sql) introduce datele in baza de date,

Întrebări?

68

Tehnologii WEB