Page 1

Alte exemple cu PHP&MySql Vom recapitula nişte noţiuni pentru a putea crea un proiect folosind PHP şi MySql. Crearea unui tabel cu PHP CREATE TABLE nume_tabela { nume_camp tip(marime) alte_informatii, ... } Presupunem ca exemplu, vom adăuga mai multe câmpuri în agenda cu datele vizitatorilor unui site memorată în tabelul agenda cu structura: Nume

Tip

Lungime

Descriere

id

INT

6

Un identificator unic

first

VARCHAR

15

Prenume

last

VARCHAR

15

Nume

phone

VARCHAR

20

Numarul de telefon

mobile

VARCHAR

20

Numarul de mobil

fax

VARCHAR

20

Numarul de fax

email

VARCHAR

30

Adresa de email

web

VARCHAR

30

Adresa de web

Pentru a crea aceast tabel în PHP (explicaţiile urmează): <? @mysql_connect(“localhost”, “user”, “parola”); @mysql_select_db(“bazadate”) or die( "Nu se poate deschide baza de date"); $query="CREATE TABLE agenda (id int(6) NOT NULL auto_increment, first varchar(15) NOT NULL, last varchar(15) NOT NULL, phone varchar(20) NOT NULL, mobile varchar(20) NOT NULL, fax varchar(20) NOT NULL, email varchar(30) NOT NULL, web varchar(30) NOT NULL, PRIMARY KEY (id),UNIQUE id (id), KEY id_2 (id))"; mysql_query($query); mysql_close(); ?> Acum să pargurgem paşii necesari pentru a putea folosi acest tabel.

Conectarea la baza de date: @mysql_connect(“localhost”, “user”, “parola”);

Deschiderea bazei de date: @mysql_select_db($database) or die( "Mesaj in caz de eroare");

1


Execuţia unei comenzi se poate face direct sau atribuind comanda unei variabile (dacă se aşteaptă un rezultat): mysql_query($query);

Adăugarea de înregistrări Informaţiile următoare vor fi adăugate în agenda cu comanda: First: Ion Last: Gheorghe Phone: 01234 567890 Mobile: 00112 334455 Fax: 01234 567891 E-mail: iongh@yahoo.com Web: http://www.gh.go.ro $query = "INSERT INTO agenda VALUES ('','Ion', 'Gheorghe', '01234 567890', '00112334455', '01234567891', 'iongh@yahoo.com', 'http://www.gh.go.ro')";

Formularele HTML Iată cum ar putea să arate un formular cu ajutorul căruia se vor culege informaţii despre vizitatori: Prenume: Nume: Telefon: Celular: Fax: E-mail: Site Web:

Codul este: <form action="insert.php" method="post"> Prenume: <input type="text" name="first"><br> Last Nume: <input type="text" name="last"><br> Telefon: <input type="text" name="phone"><br> Mobile: <input type="text" name="mobile"><br> Fax: <input type="text" name="fax"><br> E-mail: <input type="text" name="email"><br> Site Web:<input type="text" name="web"><br> <input type="Submit"> </form>

Creaţi acum un fişier 'insert.php' cu următorul conţinut: <? $first=$_POST[‘first’]; $last=$_POST[‘last’]; $phone=$_POST[‘phone’];

2


$mobile=$_POST[‘mobile’]; $fax=$_POST[‘fax’]; $email=$_POST[‘email’]; $web=$_POST[‘web’]; @mysql_connect(“localhost”,”user”,”parola”); @mysql_select_db(“bazadate”) or die( "Nu se poate deschide BD"); $query = "INSERT INTO agenda VALUES ('','$first','$last','$phone','$mobile','$fax','$email','$web')"; mysql_query($query); mysql_close(); echo “Datele au fost adaugate”; ?>

Afişarea înregistrărilor $query="SELECT * FROM agenda"; $result=mysql_query($query);

Rezultatele sunt acum într-un tablou ('result'). Pentru a-i afişa elementele, trebuie folosit foreach. În continuare, vom memora datele în variabile: $first=mysql_result($result,$i,"first"); $last=mysql_result($result,$i,"last"); $phone=mysql_result($result,$i,"phone"); $mobile=mysql_result($result,$i,"mobile"); $fax=mysql_result($result,$i,"fax"); $email=mysql_result($result,$i,"email"); $web=mysql_result($result,$i,"web");

Script-ul final pentru afişarea rezultatului interogării:

<? @mysql_connect(“localhost”, “user”, “parola”); @mysql_select_db(“bazadate”) or die( "Nu se poate deschide baza de date"); $query="SELECT * FROM agenda"; $result=mysql_query($query); $num=mysql_numrows($result); # numără câte rânduri avea tabelul agendă mysql_close(); echo "<b><center>Rezultatul interogarii</center></b><br><br>"; $i=0; while ($i < $num) { $first=mysql_result($result,$i,"first"); $last=mysql_result($result,$i,"last"); $phone=mysql_result($result,$i,"phone"); $mobile=mysql_result($result,$i,"mobile"); $fax=mysql_result($result,$i,"fax"); $email=mysql_result($result,$i,"email"); $web=mysql_result($result,$i,"web"); echo "<b>$first $last</b><br>Telefon: $phone<br>Mobil: $mobile<br>Fax: $fax<br>E-mail: $email<br>Site Web: $web <br><hr><br>"; ++$i; }

3


?>

Formatarea afişajului rezulatelor se poate face folosind combinaţii HTMl/PHP: <font face="Arial, Helvetica, sans-serif"><? echo "$first $last";?></font>

Interogările se fac dupa următorul exemplu: $query="SELECT * FROM agenda WHERE last='$searchlast'"; $result=mysql_query($query);

Actualizarea înregistrărilor $id=$_GET['id']; @mysql_connect(“localhost”, “user”, “parola”); @mysql_select_db(“bazadate”) or die( "Nu se poate deschide baza de date"); $query=" SELECT * FROM agenda WHERE id='$id'"; $result=mysql_query($query); $num=mysql_numrows($result); mysql_close(); $i=0; while ($i < $num) { $first=mysql_result($result,$i,"first"); $last=mysql_result($result,$i,"last"); $phone=mysql_result($result,$i,"phone"); $mobile=mysql_result($result,$i,"mobile"); $fax=mysql_result($result,$i,"fax"); $email=mysql_result($result,$i,"email"); $web=mysql_result($result,$i,"web"); //Spaţiu pentru cod ++$i; }

Formularul HTML: <form action="updated.php" method="post"> <input type="hidden" name="ud_id" value="<? echo "$id"; ?>"> Prenumele: <input type="text" value="ud_first" value="<? echo "$first"?>"><br> Numele: <input type="text" value="ud_last" value="<? echo "$last"?>"><br> Ner. telefon: <input type="text" value="ud_phone" value="<? echo "$phone"?>"><br> Nr. celular: <input type="text" value="ud_mobile" value="<? echo "$mobile"?>"><br> Nr. fax: <input type="text" value="ud_fax" value="<? echo "$fax"?>"><br> Adresa e-mail: <input type="text" value="ud_email" value="<? echo "$email"?>"><br> Adresa Web: <input type="text" value="ud_web" value="<? echo "$web"?>"><br> <input type="Submit" value="Actualizeaza"> </form>

Următorul pas este actualizarea propriu-zisă a bazei de date cu valorile introduse în formular: 4


$ud_id=$_POST['ud_id']; $ud_first=$_POST['ud_first']; $ud_last=$_POST['ud_last']; $ud_phone=$_POST['ud_phone']; $ud_mobile=$_POST['ud_mobile']; $ud_fax=$_POST['ud_fax']; $ud_email=$_POST['ud_email']; $ud_web=$_POST['ud_web']; mysql_connect(“localhost”, “user”, “parola”); $query="UPDATE agenda WHERE id='$ud_id' SET first='$ud_first' last='$ud_last' phone='$ud_phone' mobile='$ud_mobile' fax='$ud_fax' email='$ud_email' web='$ud_web'"; mysql_query($query); echo "Inregistrare actualizata"; mysql_close();

Funcţiile PHP pentru lucrul cu MySQL Funcţie

Returnează

Acţiune

mysql_connect([string hostname[:port][:/path/to/ socket]] [, string username] [, string password])

int

Deschide o conexiune la server

mysql_pconnect([string hostname[:port][:/path/ to/socket]] [, string username] [, string password])

int

Deschide o conexiune persistenta la serverul MySQL

mysql_close([int link_ identifier])

int

Inchide o conexiune

mysql_select_db(string database_name [, int link_identifier])

int

Selecteaza o baza de date MySQL

mysql_create_db(string database_name [, int link_identifier])

int

Creaza o baza de date

mysql_drop_db(string database_name [, int link_identifier])

int

Sterge o baza de date

mysql_query(string query [, int link_identifier])

int

Trimite o interogare SQL

mysql_db_query(string database_name, string query [, int link_ identifier])

int

Trimite o interogare SQL

5


mysql_list_dbs([int link_identifier])

int

Lista bazelor de date de pe server

mysql_list_tables(string database_name [, int link_identifier])

int

Lista tabelelor dintr-o baza de date

mysql_list_fields(string database_name, string table_name [, int link_ identifier])

int

Afiseaza campurile rezultat

mysql_error([int link_ identifier])

string

Afiseaza mesajul de eroare precedent

mysql_errno([int link_ identifier])

int

Afiseaza numarul mesajului de eroare de la operatia precedenta

mysql_affected_rows([int link_identifier])

int

Preia numarul de inregistrari afectate de operatia precedenta

mysql_insert_id([int link_ identifier])

int

Preia auto_incrementul precedentei comenzi INSERT

mysql_result(int result, int row [, mixed field])

int

Preia rezultatele interogarii

mysql_num_rows(int result)

int

Preia numarul inregistrarilor din rezultat

mysql_num_fields(int result)

int

Preia numarul campurilor din rezultat

mysql_fetch_row(int result)

tablou

Preia cate un rand din tabloul rezultat

mysql_fetch_object(int result [, int result_type])

obiect

Preia un rand ca obiect

mysql_fetch_array(int result [, int result_type])

tablou

Preia un rand ca tablou

mysql_data_seek(int result, int int row_number)

Muta pointerul intern al rezultatului

mysql_fetch_lengths(int result)

tablou

Preia marimea maxima a datelor din fiecare camp din rezultat

mysql_fetch_field(int result [, int field_offset])

obiect

Preia informatii despre campuri

mysql_field_seek(int result, int int field_offset)

Muta pointerul rezultatului la un offset

mysql_field_name(int result, int field_index)

string

Preia numele campului specificat

mysql_field_table(int result, int field_offset)

string

Preia numele tabelei din care e campul

mysql_field_len(int result, int field_offet)

int

Preia marimea acelui camp

6


mysql_field_type(int result, int field_offset)

string

Preia tipul acelui camp

mysql_field_flags(int result, int field_offset)

string

Preia flag-ul acelui camp

mysql_free_result(int result)

int

Elibereaza memoria de rezultat

TEMĂ Să se creeze formulare şi scripturi PHP pentru adăugare, modificare, ştergere din tabelul agendă.

7

Profile for Leonard Buleandra

Curs de web design PHP - http://videotutoriale35.blogspot.ro/  

Curs de web design online

Curs de web design PHP - http://videotutoriale35.blogspot.ro/  

Curs de web design online

Advertisement