views:

85

answers:

2

Hi,

I'm newbie in codeigniter and still learning. Anyone can help for sample in basic view, add, update, delete operation and queries in codeigniter will gladly appreciated.

Just a simple one like creating addressbook for newbie.

thanks,

best regards

A: 

Some sample queries in Codeigniter

class Names extends Model {
  function addRecord($yourname) {
    $this->db->set("name", $yourname);
    $this->db->insert("names");
    return $this->db->_error_number(); // return the error occurred in last query
  }
  function updateRecord($yourname) {
    $this->db->set("name", $yourname);
    $this->db->update("names");
  }
  function deleteRecord($yourname) {
    $this->db->where("name", $yourname);
    $this->db->delete("names");
  }
  function selectRecord($yourname) {
    $this->db->select("name, name_id");
    $this->db->from("names");
    $this->db->where("name", $yourname);
    $query = $this->db->get();
    return $this->db->result();
  }
  function selectAll() {
     $this->db->select("name");
     $this->db->from("names");
     return $this->db->get();
  }
}

More information and more ways for CRUD in codeigniter active record documentation More about error number over here

A sample controller

class names_controller extends Controller {
   function addPerson() {
      $this->load->Model("Names");
      $name = $this->input->post("name"); // get the data from a form submit
      $name = $this->xss->clean();
      $error = $this->Names->addRecord($name);
      if(!$error) {
         $results = $this->Names->selectAll();
         $data['names'] = $results->result();
         $this->load->view("show_names", $data);
      } else {
         $this->load->view("error");
      }
   }
}

More about controllers over here

A sample view - show_names.php

<table>
  <tr>
    <td>Name</td>
  </tr>
  <?php foreach($names as $row): ?>
  <tr><td><?ph echo $row->name; ?></td></tr>
  <?php endforeach; ?>
</table>

More about codeigniter views over here

ShiVik
on the deleteRecord() function, why do you used $this->db->set(), as far as i know it is use for update..
Manie
@Manie - thanks for pointing that out. Have corrected it.
ShiVik
@ShiVik.. no problem..
Manie
for Manie and ShiVik thanks you for your help, I'm very thankful...
marikudo
Now its work already and I have learned new lesson... thanks a lot guys...
marikudo
A: 

You can use this as an example

class Crud extends Model {
    // selecting records by specifying the column field
    function select()
    {
        // use $this->db->select('*') if you want to select all the records
        $this->db->select('title, content, date');
        // use $this->db->where('id', 1) if you want to specify what row to be fetched
        $q = $this->db->get('mytable');

        // to get the result
        $data = array();
        // for me its better to check if there are records that are fetched
        if($q->num_rows() > 0) { 
            // by doing this it means you are returning array of records
            foreach($q->result_array() as $row) {
                $data[] = $row;
            }
            // if your expecting only one record will be fetched from the table
            // use $row = $q->row();
            // then return $row;
        }
        return $data;
    }

    // to add record
    function add()
    {
        $data = array(
           'title' => 'My title' ,
           'name' => 'My Name' ,
           'date' => 'My date'
        );

        $this->db->insert('mytable', $data); 
    }

    // to update record
    function update()
    {
        $data = array(
           'title' => $title,
           'name' => $name,
           'date' => $date
        );

        $this->db->where('id', 1);
        $this->db->update('mytable', $data); 
    }

    // to delete a record
    function delete()
    {
        $this->db->where('id', 1);
        $this->db->delete('mytable');
    }
}

Some of this are from codeigniter userguide.

To view the records,

If return data is array of records,

   foreach($data as $row)
   {
       echo $row['title'] . "<br />";
   }

If the return data is an object (by using $q->row),

   echo $data->title;

This is just a few examples or CRUD in Codeigniter. Visit the codeigniter userguide.

Manie
*foreach($q->result_array() as $row) {$data[] = $row;}* = **$data = $q->result_array();**
treeface
@treeface.. thanks.. that's one option..
Manie
thanks Manie its very helpful...
marikudo