Conectarea si folosirea datelor dintr-o baza de date

Post Title

 

Daca in tutorialul trecut am vorbit despre fisiere si inglobarea informatiilor in acestea, acum vom vorbi despre bazele

de date care sunt un alt mod de inglobare a informatiilor.

In acest tutorial vom vorbi despre sgbd-ul mysql  deoarece este cel mai foloit toate hostingurile il au + ca e free pentru dezvoltare.

Primul pas este instalearea mysql, dar consider ca ati instalat xampp si aveti deja mysql , accesati http://localhost/phpmyadmin si creati o noua baza de date numita 'test' sau alt nume daca doriti.

 

Acum sa trecem la partea de php:

 

  1. Conectarea la baza de date

        Pentru a ne conecta la mysql folosim functia mysql_connect

  1.  
  2. <?php
  3. mysql_connect("127.0.0.1","root","toor") or die("Probleme la conectarea");
  4. ?>

 

Functia die() opreste executia scriptului. Se foloseste functia aceasta deoarece in interiorul scriptului pot fi interogari sql sau functii ce folosesc datele din baza de date si daca conexiunea nu este stabilita iar baza de date neselectata apar niste averti9smente destul de urate...

       

        2.   Selectarea bazei de date

 

         Pentru a selecta baza de date folosim functia mysql_select_db();

 

  1.  
  2. <?php
  3. //facem conexiuea la mysql
  4. mysql_connect("127.0.0.1","root","toor") or die("Probleme la conectarea");
  5. //selectarea bazei de date
  6. mysql_select_db("test") or die("Baza de date nu exista");
  7. ?>

 

 

       3. Rularea query-lor sql, se face cu ajutorul functiei mysql_query();

 

Pentru inceput avem nevoie de un tabel, asa ca pentru inceput creem un tabel cu ajutorul php-ului.

  1.  
  2. <?php
  3. //facem conexiuea la mysql
  4. mysql_connect("127.0.0.1","root","toor") or die("Probleme la conectarea");
  5. //selectarea bazei de date
  6. mysql_select_db("test") or die("Baza de date nu exista");
  7. //compunem comanda sql pentru a crea un tabel
  8. $query="CREATE TABLE IF NOT EXISTS `test` (
  9. `id` int(11) NOT NULL AUTO_INCREMENT,
  10. `start` int(11) NOT NULL,
  11. `end` int(11) NOT NULL,
  12. PRIMARY KEY (`id`)
  13. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
  14. ";
  15. //creem tabelul test
  16. $tbl=mysql_query($query);
  17. //daca sa creat tabelul
  18. if($tbl){
  19. echo 'Tabelul a fost creat cu succes';
  20. }
  21. //daca tabelul nu a putut fi creat
  22. else{
  23. echo 'Tabelul nu a putut fi creat<br>'. mysql_error();
  24. //mysql_error va afisa ultima eroare sql aparuta
  25. }
  26. ?>

 

      Introducem si date in tabel :

 

  1.  
  2. <?php
  3. //facem conexiuea la mysql
  4. mysql_connect("127.0.0.1","root","toor") or die("Probleme la conectarea");
  5. //selectarea bazei de date
  6. mysql_select_db("test") or die("Baza de date nu exista");
  7. //introducem in tabel tabel date
  8. mysql_query("INSERT INTO test (start,end) VALUES (50,60)");
  9. //verificam daca sa facut insert
  10. //afisam mesaj
  11. echo '<br> S-au inserat in db valorile 50,60';
  12. }
  13. mysql_query("INSERT INTO test (start,end) VALUES (100,1000)");
  14. //verificam daca sa facut insert
  15. //afisam mesaj
  16. echo '<br> S-au inserat in db valorile 100,1000';
  17. }
  18. ?>

 

      Daca totul decurge bine o sa primiti un mesaj de gen:

     S-au inserat in db valorile 50,60
     S-au inserat in db valorile 100,1000
    

      Iar tabelul arata astfel:

tabelul test

 

 

       Daca ati observat am folosit functia mysql_affected_rows() pentru a vedea numarul de randuri afectate.

       Pentru INSERT,UPDATE,REPLACE se foloseste mysql_affected_rows pentru SELECT si SHOW se foloseste mysql_num_rows() .

 

        3.  Preluarea datelor din baza de date

 

        Pentru asta sunt o multitudine de functii eu o sa prezint doar mysql_fetch_array() , deoarece restul vor veni in contextul urmatoarelor tutoriale.

  1.  
  2. <?php
  3. //facem conexiuea la mysql
  4. mysql_connect("127.0.0.1","root","toor") or die("Probleme la conectarea");
  5. //selectarea bazei de date
  6. mysql_select_db("test") or die("Baza de date nu exista");
  7. //compunem query
  8. $query="SELECT * FROM test";
  9. //rulam query
  10. $sel= mysql_query($query);
  11. //daca sa rulat cu succes query
  12. if($sel){
  13. //setam variabila de lucru
  14. $date=array();
  15. //cat timp mai sunt inca randuri
  16. while($row=mysql_fetch_array($sel)){
  17. //formam array-ul date
  18. $date[$row['id']]=$row;
  19. }
  20. //afisam array-ul
  21. echo '<pre>'.var_export($date,true).'</pre>';
  22. }
  23. //altfel
  24. else{
  25. //afisam eroarea sql
  26. echo mysql_error();
  27. }
  28.  
  29. ?>

 

       Rezultatul fiind:

 

  1.  
  2. 2 => array (
  3. 0 => '2',
  4. 'id' => '2',
  5. 1 => '100',
  6. 'start' => '100',
  7. 2 => '1000',
  8. 'end' => '1000', ),
  9.  
  10. 1 => array (
  11. 0 => '1',
  12. 'id' => '1',
  13. 1 => '50',
  14. 'start' => '50',
  15. 2 => '60',
  16. 'end' => '60', ),
  17.  
  18. )

       Acum o sa va explic si acel while care probabil o sa vi se para ciudat.

 

  1.  
  2. while ($row=mysql_fetch_array($sel)) {
  3. $date[$row['id']]=$row;
  4. }
  5.  
  6.  

        $row devine array prin atribuire cu functia mysql_fecth_array(), daca am vi avut un select care ar fi returnat un singur rand atunci totul ar fi fost ok am fi afisat direct $row dar in acest caz am fi afisat doar ultimul rezultat, insa prin folosirea lui while si a unui nou array putem stoca datele intr-o matrice, bineinteles se putea folosi si $date[]=$row, dar e mai elegant asa deoarece matricea va fi de forma matrice[1][1]=>array();

Daca sunt nelamuriri lasati un comentariu si va raspund, trebuie sa fiti inregistrat pentru a putea comenta un articol.

 

Cam atat in acest tutorial, daca o sa imi mai vina idei o sa ii dau edit, bafta pana la urmatorul articol.

Autor articol

Ştiinţa fără religie este şchioapă, religia fără ştiinţă este oarbă (Albert Einstein)

Acest articol nu este comentat, fii primul care o face

Trebuie sa fii logat sa poti lasa un comentariu Autentificare Inregistrare Logare cu Facebook
top