bancuri, glume, imagini, video, fun, bancuri online, bancuri tari, imagini haioase, videoclipuri haioase, distractie online Pe HaiSaRadem.ro vei gasi bancuri, glume, imagini, video, fun, bancuri online, bancuri tari, imagini haioase, videoclipuri haioase, distractie online. Nu ne crede pe cuvant, intra pe HaiSaRadem.ro ca sa te convingi.
 
-Drumul tau catre internet-  
line decor
  HOME -Tema lectia 6-
line decor
   
 
6.Publicarea datelor din baza de date pe web

Publicarea datelor din baza de date pe web

Daca in lectia precedenta am vorbit despre baza de date acum a venit timpul sa afisem datele stocate intr-o forma "comerciala". Cei dintre voi care au avut curiozitatea sa incerce exemplele din lectia precedenta au observat ca rezultatul query-urilor sunt afisate intr-un tabel, lucru nu foarte estetic. Mai mult decat atat un browser web nu se poate lega direct la servarul MySQL, nu poate trimite query-uri si nu poate afisea rezultatul returnat de acestea. Un browser web nu poate decat sa afiseze pagini HTML. Si de aceea aici avem nevoie de PHP, care se poate conecta la MySQL, poate trimite interogari si poate afisea rezultatul interogarior in format HTML, format inteles de un browser web. Principiul de functionare este cel descris in figura 1.

Figura 1

figura 1

Sa detaliem un pic. Browserul web vrea sa afiseze o pagina. El cere aceasta pagina serverului web, care vazand ca este o pagina de tip PHP o trimite spre prelucrare modulului de PHP instalat. Acesta interpreteaza codul, vede ca sunt cerute date din baza de date, se conecteaza la aceasta, le obtine si genereaza codul html pentru afiserea lor. Astfel pagina generata este servita browserului care o afiseaza. Sa parcurgem in detaliu toate aceste etape.

conectarea PHP la MySQL
Conectarea la MySQL se face printr-o functie PHP, mai exact:

<?php
     $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
     or die("Nu se poate conecta");
?>
Functia mysql_connect se conecteaza la MySQL folosind ca parametri adresa serverului unde ruleaza MySQL (daca il aveti instalat pe propriul calculator aceasta ar trebui sa fie localhost), user-ul (daca il aveti instalat pe propriul calculator aceasta ar trebui sa fie root) si parola (daca il aveti instalat pe propriul calculator aceasta ar trebui sa nu existe).

Deci exemlul de mai sus particularizat pentru cazul in care aveti MySQL instalat pe proriul calculator:
<?php
     $link = mysql_connect("localhost", "root", "")
     or die("Nu se poate conecta");
?>
Functia die nu face altceva decat sa afiseze mesajul si sa nu mai execute nici un cod dupa. Variabila $link reprezinta un identificator pentru aceasta conxiune (pentru ca ne putem conecta simultan la mai multe server MySQL).

Numai conectarea nu este suficienta. Trebuie sa-i spunem servarului MySQL ce baza de date dorim sa folosim. Pentru a exemplifica vom folosi baza de date de la lectia 5.
<?php
     $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
     or die("Nu se poate conecta");
    mysql_select_db("anunturi", $link) or die("nu se poate alege baza de date");
?>
Observati ca functia mysql_select_db este cea care ii transmite serverului MySQL ce baza de date vrem sa folosim.

trimiterea de interogari cu PHP
Vom contiuna sa folosim ca exemplu practic baza de date de la lectia 5. Sa presupunem ca dorim sa schimbam data celui de-al doilea anunt.

<?php
     $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
     or die("Nu se poate conecta");
    mysql_select_db("anunturi", $link) or die("nu se poate alege baza de date");
    $query = "UPDATE anunturi SET data_anunt = '2003-05-10' WHERE id =2";
    $result = mysql_query($query) or die("Query failed");
     
?>
Functia mysql_query este cea care transmite serverului MySQL query-ul pe care dorim sa-l executam ca string. Variabila $query cintine in acest caz un string ce reprezinta query-ul nostru de update. Se pot astfel executa orice fel de query-uri, dar probabil cele mai importante sunt cele care selecteaza si afiseaza informatii din baza de date, asa cum vom vedea in paragraful urmator.

manipularea rezultatelor selectate
Poate una dintre cele mai importante lucruri pe care le puteti face cu combinatia PHP - MySQL este sa selectati si sa afiseati informatile din baza de date. Sa luam un exemplu concret si sa-l discutam:

<?php
     $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
     or die("Nu se poate conecta");
    mysql_select_db("anunturi", $link) or die("nu se poate alege baza de date");
    $query = "select * from anunturi";
    $result = mysql_query($query) or die("Query failed");
     
     while ($myrow = mysql_fetch_array($result)) {
         echo "<b>Anunt:</b> ".$myrow["text_anunt"]."<br><b>Data:</b> ".$myrow["data_anunt"]."<br><br><br>";
     }
     
?>
Functia nou introdusa in exemlul nostru este mysql_fetch_array functie ce nu face decat sa ia pe rand (pana se termina) fiecare rand (inregistrare) returnat de query si sa o introduca intr-un vector ($myrow). Puteti observa ca, cheile acestui vector sunt chiar numele campuriolor din tabela noastra.

introducerea de noi date in baza de date
Si acum sa incercam sa realizam o metoda practica de a introduce noi anunturi in baza noastra de date. Ati invatat despre formulare la lectia 4. Daca nu ati parcurs-o deja ca invit sa o faceti inainte de a continua pentru a putea intelege pe deplin urmatoarele exemple.

Vom folosi un fisier (html) in care va exista un formular unde vom introduce anunturile sa-l numim 6_form.htm. El are urmatorul continut:

<html>
<head>
<title>Adaugare in baza de date</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1" method="post" action="6_insert.php">
  <strong>anunt:</strong>
  <input type="text" name="anunt" id="anunt">
  <br>
  <strong>data:</strong>
  <input type="text" name="data" id="data">
  (in format aaaa-ll-zz)<br>
  <input type="submit" name="Submit" value="adauga">
  <input type="reset" name="Submit2" value="reset">
</form>
</body>
</html> 
Prin intermediul acestui fisier se pot introduce anuntul si data la care a fost publicat.

Acum cel de-al doilea fisier (de data asta de tip php) care va prelua datele din formularul precedent si le va introduce in baza de date. Sa-l numim 6_insert.php.
html>
<head>
<title>Adaugare in baza de date</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
     $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
     or die("Nu se poate conecta");
    mysql_select_db("anunturi", $link) or die("nu se poate alege baza de date");
    $query = "INSERT INTO anunturi SET text_anunt='".$_POST["anunt"]."', data_anunt='".$_POST["data"]."'";
    $result = @mysql_query($query);
     if ($result) echo "anuntul a fost indrodus cu succes. <a href=\"6_form.htm\">introduceti alt anunt?</a>";
     else
         {
         echo "eroare. anuntul nu a putut fi introdus";
         exit();
     }
     
?>
</body>
</html>
In acest fisier se introduc informatiile in baza de date si se afiseaza daca a intervenit vreo eroare.

Puteti descarca o arhiva cu ambele fisier de aici.