delaurentis
Site owner
Din: Tg-Jiu
Inregistrat: acum 19 ani
Postari: 7666
|
|
Introducerea datelor dintr-o pagină HTML
Introducerea datelor din paginile HTML este aproape identică cu inserarea lor din script-uri PHP. Avantajul constă, însă, în faptul că nu apare nevoia schimbării script-ului pentru fiecare câmp de introdus. In plus, putem permite "vizitatorilor" să introducă direct datele lor.
Iată mai jos cum arată o pagină HTML cu celule text pentru introducerea detaliilor corespunzătoare:
<form action="insert.php" method="post"> Nume Familie: <input type="text" name="nume"><br> Prenume: <input type="text" name="prenume"><br> Telefon: <input type="text" name="telefon"><br> Mobil: <input type="text" name="mobil"><br> Fax: <input type="text" name="fax"><br> E-mail: <input type="text" name="email"><br> Web: <input type="text" name="web"><br> <input type="Submit"> </form>
Această pagină poate fi, desigur, formatată şi pot apare diferite schimbări - variante. Este doar un formular de pornire, ilustrativ. Va trebui însă editat script-ul din lecţia precedentă, pentru ca, în locul introducerii informaţiilor direct din script în baza de date, să fie folosite variabilele: <? $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 contacts VALUES ('','$nume','$prenume','$telefon','$mobil','$fax','$email','$web')"; mysql_query($query);
mysql_close(); ?>
Acest script trebuie salvat ca fişier cu numele insert.php, astfel ca să poată fi apelat de formularul HTML. Treaba va merge întrucât, în loc ca datele să fie introduse local, ele se introduc în formular şi sunt memorate în variabilele care apar precizate acolo şi care sunt transmise apoi PHP-ului.
Putem să adăugăm script-ului un mesaj care să confirme preluarea datelor. Asta face parte din 'oferta' de bază a PHP şi rămâne ca exerciţiu.
Scoaterea Datelor
Acum avem în baza de date cel puţ'in o înregistrare, dacă nu mai multe. Se pune problema cum vizualizăm, cum scoatem aceste date folosind PHP. Cunoaşterea elementelor de programare din PHP este necesară, recomandabilă fiind parcurgerea Mini-cursului de PHP înaintea acestuia.
Prima comandă la care vom apela este comanda SELECT din SQL, folosită într-o cerere MySQL în forma:
SELECT * FROM contacts
Aceasta este o comandă de bază din MySQL, care va spune script-ului să selecteze toate înregistrările din tabela contacts. Dar, de data aceasta, comanda furnizează un rezultat, ea va trebui executată atribuin rezultatele unei variabile:
$query="SELECT * FROM contacts"; $rezultat=mysql_query($query);
In acest caz, întregul conţinut al bazei de date va fi atribuit variabilei cu numele $rezultat (care va fi deci o matrice, un tablou). Mai înainte de a putea scoate aceste date va trebui să le extragem ca variabile simple, separate. Pentru asta trebuie să ştim câte înregistrări avem în tabelă (deci şi în variabila $rezultat ).
Numărarea liniilor
Avem o comandă specială în MySQL pentru calculul numărului de linii din tabelă. Este importantă pentru că în baza de date se fac uzual numeroase actualizări, completări, ştergeri.
$num=mysql_numrows($rezultat);
Astfel, variabila $num va căpăta ca valoare numărul de linii din $rezultat (adică tocmai din baza de date). Acest număr va putea fi folosit în continuare pentru ciclul în care se vor analiza şi desface în variable separate câmpurile fiecărei linii.
Construirea ciclului
Avem de scris un ciclu pentru a selecta din tabel (din rezultat) linie cu linie.... Definim un indice, o variabilă $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 în PHP şi va executa ansamblul numit OPERATIILE ASUPRA LINIEI de exact $num ori, adică de atâtea ori cât trebuie. La fiecare reluare $i fiind mărit cu o unitate. Astfel $i poate fi folosit şi pentru a preciza numărul liniei care se prelucrează.
Asocierea datelor la variabile
In partea pe care am numit-o OPERATIILE ASUPRA LINIEI trebuie să separăm fiecare câmp din linia - înregistrare asociindu-l unei variabile. Folosim pentru asta următoarea secvenţă:
$variable=mysql_result($rezultat,$i,"numele_campului"
Astfel, pentru a extrage fiecare componentă din baza noastră de date, vom folosi următoarele instrucţiuni:
$nume=mysql_result($result,$i,"nume" $prenume=mysql_result($result,$i,"prenume" $telefon=mysql_result($result,$i,"telefon" $mobil=mysql_result($result,$i,"mobil" $fax=mysql_result($result,$i,"fax" $email=mysql_result($result,$i,"email" $web=mysql_result($result,$i,"web"
Nu ne-am ocupat aici de câmpul ID (deşi o puteam face) pentru că nu ne este necesar la afişare datelor.
Combinarea Script-ului
Acum putem scrie script-ul complet pentru scoaterea datelor. In acest script datele nu sunt formatate, adică vor fi afişate toate cu acelaşi font, predefinit.
<? $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 contacts"; $rezultat=mysql_query($query);
$num=mysql_numrows($rezultat);
mysql_close();
echo "<b><center>Database Output</center></b><br><br>";
$i=0; while ($i < $num) {
$nume=mysql_result($rezultat,$i,"nume" $prenume=mysql_result($result,$i,"prenume" $telefon=mysql_result($result,$i,"telefon" $mobil=mysql_result($result,$i,"mobil" $fax=mysql_result($result,$i,"fax" $email=mysql_result($result,$i,"email" $web=mysql_result($result,$i,"web"
echo "<b>$nume $prenume</b><br>Telefon: $telefon<br>Mobil: $mobil<br>Fax: $fax<br>E-mail: $email<br>Web: $web<br><hr><br>";
++$i; }
?>
_______________________________________ - - - -
|
|