Interogarea MySQL cu ajutorul script-urilor PHP

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
email VARCHAR 30 Adresa de email
web VARCHAR 30 Adresa de web

Pentru a crea aceasta tabela in PHP (explicatiile urmeaza):
<?
$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:

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>

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;
}

In continuare, vom memora datele in 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 afisarea rezultatului interogarii:
<?
$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;
}

?>

Fomatarea afisajului rezulatelor se poate face folosind combinatii HTMl/PHP:

<font face="Arial, Helvetica, sans-serif"><? echo "$first $last";?></font*gt;

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;
}
  

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>

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();

Functiile PHP pentru lucrul cu MySQL

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)
InapoiInainte

Home Introducere Instalarea Utilizare MySQL Limbajul MySQL Administarea MySQL Configurarea MySQL MySQL si PHP Quiz MySQL Linkuri utile Contacteaza-ma..