Crearea unei tabele cu PHP
CREATE TABLE nume_tabela { nume_camp tip(marime) alte_informatii, ... }
Presupunem ca exemplu, o agenda cu datele vizitatorilor unui site memorata in tabela 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 |
VARCHAR | 30 | Adresa de email | |
web | VARCHAR | 30 | Adresa de web |
<? $user="nume"; $password="parola"; $database="baza_de_date"; mysql_connect(localhost,$user,$password); @mysql_select_db($database) 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 sa pargurgem pasii necesari pentru a putea folosi acesta tabela.
Conectarea la baza de date:
$username="nume_utilizator"; $password="parola"; $database="baza_de_date"; mysql_connect(localhost,$username,$password);
Deschiderea bazei de date:
@mysql_select_db($database) or die( "Mesaj in caz de eroare");
Executia unei comenzi se poate face direct sau atribuind comanda unei variabile (daca se asteapta un rezultat):
mysql_query($query);
Adaugarea de inregistrari
Informatiile urmatoare vor fi adaugate in agenda cu comanda:
First: Ion
Last: Gheorghe
Phone: 01234 567890
Mobile: 00112 334455
Fax: 01234 567891
E-mail: iongh@yahoo.com
Web: http://www.inogh.go.ro
$query = "INSERT INTO agenda VALUES ('','Ion','Gheorghe','01234 567890','00112 334455','01234 567891','iongh@yahoo.com','http://www.iongh.go.ro')";
Formularele HTML
Iata cum ar putea sa arate un fomrular cu ajutorul caruia se vor culege informatii despre vizitatori:
Creaza acum un fisier 'insert.php' cu urmatorul continut:
<? $username="utilizator"; $password="parola"; $database="baza_de_date"; mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Nu se poate deschide BD"); $query = "INSERT INTO agenda VALUES ('','$first','$last', '$phone','$mobile','$fax','$email','$web')"; mysql_query($query); mysql_close(); ?>
Afisarea inregistrarilor
$query="SELECT * FROM agenda";
$result=mysql_query($query);
Rezultatele sunt acum intr-un tablou ('result'). Pentru a-i afisa elementele, trebuie folosit un ciclu:
$num=mysql_numrows($result);
$i=0; while ($i < $num) { COD PT AFISaRE ++$i; }
$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");
<? $username="utilizator"; $password="parola"; $database="baza_de_date"; mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Nu se poate deschide baza de date"); $query="SELECT * FROM agenda"; $result=mysql_query($query); $num=mysql_numrows($result); 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; } ?>
Interogarile se fac dupa urmatorul exemplu:
$query="SELECT * FROM agenda WHERE last='$searchlast'"; $result=mysql_query($query);
Actualizarea inregistrarilor
$id=$_GET['id']; $username="utilizator"; $password="parola"; $database="baza_de_date"; mysql_connect(localhost,$username,$password); $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"); Spatiu pentru cod ++$i; }
Urmatorul pas este actualizarea propriu-zisa a bazei de date cu valorile introduse in formular:
$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']; $username="utilizator"; $password="parola"; $database="baza_de_date"; mysql_connect(localhost,$username,$password); $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();
Functie Returneaza Actiune mysql_connect([string int Deschide o conexiune la server hostname[:port][:/path/to/ socket]] [, string username] [, string password]) mysql_pconnect([string int Deschide o conexiune persistenta hostname[:port][:/path/ la serverul MySQL to/socket]] [, string username] [, string password]) mysql_close([int link_ int Inchide o conexiune identifier]) mysql_select_db(string int Selecteaza o baza de date MySQL database_name [, int link_identifier]) mysql_create_db(string int Creaza o baza de date database_name [, int link_identifier]) mysql_drop_db(string int Sterge o baza de date database_name [, int link_identifier]) mysql_query(string query int Trimite o interogare SQL [, int link_identifier]) mysql_db_query(string int Trimite o interogare SQL database_name, string query [, int link_ identifier]) mysql_list_dbs([int int Lista bazelor de date de pe server link_identifier]) mysql_list_tables(string int Lista tabelelor dintr-o baza de date database_name [, int link_identifier]) mysql_list_fields(string int Afiseaza campurile rezultat database_name, string table_name [, int link_ identifier]) mysql_error([int link_ string Afiseaza mesajul de eroare precedent identifier]) mysql_errno([int link_ int Afiseaza numarul mesajului de eroare identifier]) de la operatia precedenta mysql_affected_rows([int int Preia numarul de inregistrari link_identifier]) afectate de operatia precedenta mysql_insert_id([int link_ int Preia auto_incrementul precedentei identifier]) comenzi INSERT mysql_result(int result, int Preia rezultatele interogarii int row [, mixed field]) 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 obiect Preia un rand ca obiect result [, int result_type]) mysql_fetch_array(int tablou Preia un rand ca tablou result [, int result_type]) mysql_data_seek(int result, int Muta pointerul intern al rezultatului int row_number) mysql_fetch_lengths(int tablou Preia marimea maxima a datelor result) din fiecare camp din rezultat mysql_fetch_field(int obiect Preia informatii despre campuri result [, int field_offset]) mysql_field_seek(int result, int Muta pointerul rezultatului la un offset int field_offset) mysql_field_name(int string Preia numele campului specificat result, int field_index) mysql_field_table(int string Preia numele tabelei din care e campul result, int field_offset) mysql_field_len(int int Preia marimea acelui camp result, int field_offet) mysql_field_type(int string Preia tipul acelui camp result, int field_offset) mysql_field_flags(int string Preia flag-ul acelui camp result, int field_offset) mysql_free_result(int int Elibereaza memoria de rezultat result)