E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale PHP

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

WEB DEVELOPMENT  /  PHP  /  Introducere in PHP (24)

IX. PHP si MySQL (partea a II-a)

03.06.2008
IX. PHP si MySQL (partea a II-a)

In acest tutorial vei vedea cum sa folosesti PHP pentru a extrage informatii dintr-o baza de date, utilizand apoi aceste informatii pentru a construi o pagina Web dinamica.

Total vizualizari: 5920 5920 afisari   |   Comentarii  0   |   Rating   |   (3 voturi)   |   Timp necesar: 30 min 30 min   |   Nivel de cunostiinte necesar: Incepator  Incepator

Sursa:  Zend.com  
Autor:  Vikram Vaswani
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1 2 »
comenteaza printeaza

Inserare "chirurgicala"
Daca ai parcurs prima parte a acestui tutorial ( VIII. PHP si MySQL, partea I ), ar trebui sa stii cum sa executi o interogare SELECT pentru a extrage un set de rezultate din baza de date. Totusi, poti de asemenea folosi API-ul MySQL al PHP pentru interogari ce nu returneaza un set de rezultate de exemplu, o interogare INSERT sau UPDATE. Ai in vedere urmatorul exemplu, care demonstreaza acest lucru solicitand intrari utilizator printr-un formular, iar apoi inserand aceste informatii intr-o baza de date:

<html> 
<head> 
<basefont face="Arial"> 
</head> 
<body> 
<?php 
if (!isset($_POST['submit'])) { 
// formularul nu a fost transmis 
?> 
    <form action="<?=$_SERVER['PHP_SELF']?>" method="post"> 
    Tara: <input type="text" name="country"> 
    Animal simbolic: <input type="text" name="animal"> 
    <input type="submit" name="submit"> 
    </form> 
<?php 
} 
else { 
    // formularul nu a fost transmis 
    
    // seteaza variabilele de acces la serverul MySQL 
    $host = "localhost"; 
    $user = "test"; 
    $pass = "test"; 
    $db = "testdb"; 
    
    // preia informatiile din formular 
    
    // verificare ca toate campurile au fost completate     
    // foloseste mysql_escape_string pentru a prelucra valorile
     
    $country = empty($_POST['country']) ? die 
    ("EROARE: Completati tara!") : mysql_escape_string($_POST['country']); 
    
    $animal = empty($_POST['animal']) ? die ("EROARE: Completati
    animalul simbolic"): mysql_escape_string($_POST['animal']); 
    
    // deschide conexiunea 
    $connection = mysql_connect($host, $user, $pass) 
    or die ("Nu ma pot conecta la serverul MySQL!"); 
    
    // selecteaza baza de date 
    mysql_select_db($db) or die ("Nu pot selecta baza de date!"); 
    
     // creeaza interogare 
    $query = "INSERT INTO symbols (country, animal) 
    VALUES ('$country', '$animal')"; 
    
     // executa interogarea 
    $result = mysql_query($query) or die 
    ("Interogarea contine o eroare: $query. ".mysql_error()); 
    
    // afiseaza mesaj cu ID-ul inregistrarii inserate 
    echo "A fost inserata inregistrarea cu ID-ul ".mysql_insert_id(); 
    
    // inchide conexiunea 
    mysql_close($connection); 
} 
?> 
</body> 
</html>

Aici, utilizatorului i se ofera un formular care solicita introducerea unei tari si a animalului sau national.

Odata ce formularul a fost transmis, informatiile din acesta sunt folosite pentru a crea o interogare INSERT, care este apoi trimisa catre baza de date prin metoda mysql_query(). Din moment ce mysql_query() returneaza o valoare de tip Boolean, indicand daca interogarea s-a desfasurat cu succes sau nu, este posibila verificarea rezultatului instructiunii INSERT si returnarea unui mesaj adecvat.

In exemplul de mai sus apar doua noi functii. Functia mysql_escape_string() prelucreaza caracterele speciale (cum ar fi ghilimelele) din intrarile utilizator astfel incat acestea sa poata fi introduse cu succes in baza de date; pe de alta parte, mysql_insert_id() returneaza ID-ul generat de interogarea precedenta INSERT (fiind utila doar daca tabelul in care are loc inserarea contine un camp AUTO_INCREMENT). Ambele functii sunt de asemenea disponibile si in ext/mysqli.

Stergerea dintr-o tabela MySQL
Evident, acelasi lucru poate fi indeplinit si in cazul altor instructiuni de manipulare a datelor. Urmatorul exemplu iti demonstreaza cum sa folosesti instructiunea DELETE pentru a elimina selectiv elemente din tabel. Pentru diversitate, de aceasta data voi folosi ext/mysqli:

<html> 
<head> 
<basefont face="Arial"> 
</head> 
<body> 
<?php 
 
// seteaza variabilele de acces la serverul MySQL 
$host = "localhost"; 
$user = "test"; 
$pass = "test"; 
$db = "testdb"; 
 
// creeaza obiectul mysqli
// deschide conexiunea 
$mysqli = new mysqli($host, $user, $pass, $db); 
 
// verifica daca au aparut erori la conectare 
if (mysqli_connect_errno()) { 
    die("Nu ma pot conecta la serverul MySQL!"); 
} 
 
// daca am primit valoarea id-ului prin GET, o stergem
if (isset($_GET['id'])) { 
    // creeaza interogarea pentru stergere 
    $query = "DELETE FROM symbols WHERE id = ".$_GET['id']; 
    // executa interogarea 
    if ($mysqli->query($query)) { 
        // afiseaza numarul de randuri care au fost sterse 
        echo $mysqli->affected_rows." row(s) affected"; 
    } 
    else { 
        // afiseaza mesaj de eroare 
        echo "Interogarea contine o eroare: $query. ".$mysqli->error; 
    } 
} 
 
// creeaza interogarea pentru a citi informatiile 
$query = "SELECT * FROM symbols"; 
 
// executa interogarea 
if ($result = $mysqli->query($query)) { 
    // verifica daca a fost returnat vreun rand
    if ($result->num_rows > 0) { 
        // daca da 
        // afiseaza randurile returnate unul dupa altul
        echo "<table cellpadding=10 border=1>"; 
        while($row = $result->fetch_array()) { 
            echo "<tr>"; 
            echo "<td>".$row[0]."</td>"; 
            echo "<td>".$row[1]."</td>"; 
            echo "<td>".$row[2]."</td>"; 
            echo "<td><a href=".$_SERVER['PHP_SELF'].
            "?id=".$row[0].">Sterge</a></td>"; 
            echo "</tr>"; 
        } 
    } 
    // elibereaza memoria 
    $result->close(); 
} 
else { 
    // afiseaza mesaj de eroare 
    echo "Interogarea contine o eroare: $query. ".$mysqli->error; 
} 
// inchide conexiunea 
$mysqli->close(); 
?> 
</body> 
</html>

De remarcat faptul ca am folosit proprietatea affected_rows a obiectului mysqli, care returneaza numarul total de randuri ce au fost afectate de catre ultima operatie. Este valabila de asemenea si in ext/mysql , la fel ca si functia mysql_affected_rows().

Pagina:
1 2 »
comenteaza printeaza
Alte tutoriale PHP:
Noteaza acest tutorial
Rating tutorial
 
(3 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
4320
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
4190
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4170
Tutoriale scrise de kheops
kheops Rang utilizator kheops - Mediu
4084
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
4010
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
RoR Sony Vegas Illustrator Ruby on Rails PSD Excel COREL DRAW Bridge Outlook Swift 3D Dreamweaver Action Script JSON MySQL Javascript Vista Flash Fireworks StyleSheet Python AJAX XHTML Fotografie SEO PHP Verilog SWF XML Java Photoshop Lightroom CSS Word Gimp HTML Powerpoint
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software