Modelele in CodeIgniter: Interogarea bazelor de date

Created at: iunie 18, 2013; Last update: noiembrie 1, 2013

Interogarea bazelor de date se face cu ajutorul modelelor. Pornesc de la ideea că aveţi deja instalat CodeIgniter 2.x. Voi oferi de asemenea un controller si un view ca sa va faceti o idee cu privire la vizualizarea rezultatului.

Asadar, este necesară realizarea unui model (tabela am numit-o “useri”):

Acum, urmeaza alternativele pentru interogari. Prima si cea mai simpla interogare este:

$q = $this->db->query(“SELECT * FROM useri WHERE id=7 AND usr_mail = ‘mailulmeu@mail.ro'”);

O a doua metoda care previne sql injection este:

$sql = “SELECT usr_name FROM useri WHERE id = ? AND usr_mail = ?”;
$q = $this->db->query($sql, array(7,”arcu.ac@quis.edu”));

O altă metodă consta in folosirea Active Record a clasei Database:

$q = $this->db->get(“test”); /* daca doresti sa preiei toate datele din tabel */

De asemenea, daca doriesti sa preiei doar anumite campuri:

$this->db->select(“usr_name, usr_mail”);
$q = $this->db->get(“test”);

Si daca doresti sa stabilesti parametri suplimentari:

$this->db->select(“usr_name, usr_mail”);
$this->db->from(“test”);
$this->db->where(“id”, 1);
$q = $this->db->get();

Prin urmare, useri_model.php (care va fi salvat in folderul models din application) va arata cam asa…

Vom realiza şi controller şi view pentru a vedea rezultatele muncii:

Iar useri_view.php (pe care il vei salva in folderul views din application) va arata cam asa:

Sper ca nu mi-a scapat vreo eroare…

4 thoughts on “Modelele in CodeIgniter: Interogarea bazelor de date

  1. Totan Silviu

    Este foarte bun tutorialul sincer pentru mine ca incepator totul este foarte bine relatat de la interogarea bazei de date pana la preluarea datelor si afisarea lor si cel mai mult imi place ca ai respectat regurile mvc ,
    in controller se fac legaturile in modul se face calculele etc. iar in view se afiseaza rezultatul .Si +
    ca codul nu e dezordonat din pacate intalnit cam des in alte tutoriale .Foarte bun

    Răspunde
    1. avenirer Autor articol

      In model nu se fac calculele. In model se fac doar interogarile bazei de date si se returneaza controllerului informatia. In controller se preiau informatii externe, se fac calcule cu acestea, dupa care fie se interactioneaza cu modelele pentru a prelua informatii interne fie se trimite direct rezultatul in view. Cel putin asa am inteles eu… 🙂 Multumesc pentru comentariu. Este bine ca din cand in cand sa mai primesc astfel de informatii. Asa imi dau seama ca munca nu este in zadar. 🙂 Daca nu intelegi ceva sau vrei sa afli despre altceva astept oricand sa imi scrii un rand. 🙂

      Răspunde
  2. Totan Silviu

    $this->load->model(“useri_model”);
    $data[“datepreluate”]=$this->date_model->preiaDate();

    daca te uiti putin peste acest cod vei observa o greseala date_model cum date_model daca ai useri_model ai facut intentionat greseala sau e vb de alceva

    Răspunde
    1. avenirer Autor articol

      Intr-adevar, aici am gresit. Am corectat acum codul. Multumesc pentru observatie. Cu ocazia asta am observat si ca mai sus am numit clasa modelului ‘useri_model.php’ ca ‘Users_model’, ceea ce ar fi dat o eroare cat mine de mare. Am corectat si acolo.

      Răspunde

Lasă un răspuns

Your email address will not be published. Required fields are marked *

No spam? * Time limit is exhausted. Please reload CAPTCHA.