bdon
bdon

Reputation: 3

db query in codeigniter active record returing object

I'm trying to pull a column out of the database, simple enough right? I'm using codeigniter's active record.

My Model Function

    public function getcolumn($field, $table, $kfield, $key)
    {
      $this->db->select($field);
      $this->db->from($table);
      $this->db->where($kfield, $key);

      $query = $this->db->get();
      $results = $query->result();

      return $results;
    }

My Controller has:

   public function users()
   { 
     $body['handle'] = $this->admin->getcolumn('handle', 'users', 'userid', $userid)

     $this->load->view('template/header');
     $this->load->view('admin/users', $body);
     $this->load->view('template/footer');
   }

now when I print_r that variable in my view I get "Array ( [0] => stdClass Object ( [handle] => Zanigade ) ) "

Since I'm trying to use this function as a global "grab and go" function without writing a ton of functions, why won't it just return the name? What am I doing wrong? I've been playing with the output for 3 hours and I know this is a stupid easy fix and I'm just missing the mark.

Any help will be appreciated.

Upvotes: 0

Views: 91

Answers (2)

Raman Saluja
Raman Saluja

Reputation: 106

It seems you are returning the result instead of single row, try this

public function getcolumn($field, $table, $kfield, $key)
{
  $this->db->select($field);
  $this->db->from($table);
  $this->db->where($kfield, $key);

  $query = $this->db->get();

  return $query->row()->$field;
}

For More Information, Check the codeigniter user guide https://www.codeigniter.com/userguide3/database/examples.html

Upvotes: 0

DFriend
DFriend

Reputation: 8964

Put it all together using the "chaining" capability like so

$results = this->db->get()->row()->$field;

We get() one row() which (should) contain a field named $field.

Upvotes: 2

Related Questions