IntroducerePana acum, ai creat o baza de date si ai incarcat in ea informatii. In aceasta lectie vei vedea cum se realizeaza o pagina de intrare pentru aceasta baza de date, si cum se afiseaza continutul acesteia.
Introducerea datelor dintr-o pagina HTMLIntroducerea datelor din paginile HTML este aproape identica cu inserarea lor din script-uri PHP. Avantajul consta, insa, in faptul ca nu ai nevoie sa schimbii script-ului pentru fiecare camp de introdus. In plus, poti permite "vizitatorilor" sa introduca direct datele lor.
Iata mai jos cum arata o pagina HTML cu celule text pentru introducerea detaliilor corespunzatoare:
<form action="insert.php" method="post">
Nume: <input type="text" name="nume"><br>
Pret: <input type="text" name="pret"><br>
<input type="Submit">
</form>
|
Aceasta pagina poate fi, desigur, formatata si pot apare diferite schimbari - variante. Este doar un formular de pornire, ilustrativ. Va trebui insa editat script-ul din lectia precedenta, pentru ca, in locul introducerii informatiilor direct din script in baza de date, sa folosesti variabilele:
<?php
$username="username";
$password="password";
$database="baza_mea_de_date";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Baza de date nu poate fi selectata");
$query = "INSERT INTO produse VALUES ('','$nume','$pret')";
mysql_query($query);
mysql_close();
?> |
Acest script trebuie salvat ca fisier cu numele insert.php, astfel ca sa poata fi apelat de formularul HTML. Treaba va merge intrucat, in loc ca datele sa fie introduse local, ele se introduc in formular si sunt memorate in variabilele care apar precizate acolo si care sunt transmise apoi PHP-ului.
Poti adauga script-ului un mesaj care sa confirme preluarea datelor. Asta face parte din 'oferta' de baza a PHP si ramane ca exercitiu.
Scoaterea DatelorAcum avem in baza de date cel putin o inregistrare, daca nu mai multe. Se pune problema cum vizualizam, cum scoatem aceste date folosind PHP. Cunoasterea elementelor de programare din PHP este necesara, recomandabila fiind parcurgerea cursului de PHP inaintea acestuia.
Prima comanda la care vom apela este comanda SELECT din SQL, folosita intr-o cerere MySQL in forma:
Aceasta este o comanda de baza din MySQL, care va spune script-ului sa selecteze toate inregistrarile din tabela produse. Dar, de data aceasta, comanda furnizeaza un rezultat, ea va trebui executata atribuim rezultatele unei variabile:
$query="SELECT * FROM produse";
$rezultat=mysql_query($query);
|
In acest caz, intregul continut al bazei de date va fi atribuit variabilei cu numele $rezultat (care va fi deci o matrice, un tablou). Mai inainte de a putea scoate aceste date va trebui sa le extragi ca variabile simple, separate. Pentru asta trebuie sa stii cate inregistrari ai in tabela (deci si in variabila $rezultat ).
Numararea liniilorAi o comanda speciala in MySQL pentru calculul numarului de linii din tabela. Este importanta pentru ca in baza de date se fac uzual numeroase actualizari, completari, stergeri.
$num=mysql_numrows($rezultat);
|
Astfel, variabila $num va capata ca valoare numarul de linii din $rezultat (adica tocmai din baza de date). Acest numar va putea fi folosit in continuare pentru ciclul in care se vor analiza si desface in variable separate campurile fiecarei linii.
Construirea cicluluiAi de scris un ciclu pentru a selecta din tabel (din rezultat) linie cu linie.... Definim un indice, o variabila $i care va parcurge (cu incrementare) valorile de la 1 la $num .
$i=0;
while ($i < $num) {
OPERATIILE ASUPRA LINIEI
++$i;
}
|
Acesta este un ciclu tipic in PHP si va executa ansamblul numit OPERATIILE ASUPRA LINIEI de exact $num ori, adica de atatea ori cat trebuie. La fiecare reluare $i fiind marit cu o unitate. Astfel $i poate fi folosit si pentru a preciza numarul liniei care se prelucreaza.
Asocierea datelor la variabileIn partea pe care am numit-o OPERATIILE ASUPRA LINIEI trebuie sa separam fiecare camp din linia - inregistrare asociindu-l unei variabile. Folosim pentru asta urmatoarea secventa:
$variable=mysql_result($rezultat,$i,"numele_campului");
|
Astfel, pentru a extrage fiecare componenta din baza noastra de date, vom folosi urmatoarele instructiuni:
$nume=mysql_result($result,$i,"nume");
$pret=mysql_result($result,$i,"pret");
|
Nu ne-am ocupat aici de campul produsID (desi o puteam face) pentru ca nu ne este necesar la afisare datelor.
Combinarea Script-uluiAcum poti scrie script-ul complet pentru scoaterea datelor. In acest script datele nu sunt formatate, adica vor fi afisate toate cu acelasi font, predefinit.
<?php
$username="username";
$password="password";
$database="baza_noastra_de_date";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Baza de date nu poate fi selectata");
$query="SELECT * FROM produse";
$rezultat=mysql_query($query);
$num=mysql_numrows($rezultat);
mysql_close();
echo "<b><center>Produse</center></b><br><br>";
$i=0;
while ($i < $num) {
$nume=mysql_result($rezultat,$i,"nume");
$pret=mysql_result($result,$i,"pret");
echo "<b>$nume $pret</b><br><hr><br>";
++$i;
}
?> |
|