phpcodeignitermodel-view-controller

Single quoted variable is not being rendered as its value in CodeIgniter active record query


can someone please help me with the my search function on my code? Im new into php and im using codeigniter framework for the development.

search view

<div id="admin-col">
    <div>
        <?php echo form_open('search_admin/search_admins'); ?>
        <?php
            $data = array('name' => 'search', 'id' => 'search');
            echo form_input($data);
        ?>
        <?php
            $data = array(
                'name' => 'submit',
                'id' => 'submit',
                'value' => 'Search Admin'
            );
            echo form_submit($data);
        ?>
    </div>

controller

class Search_admin extends CI_Controller
{
    function __construct()
    {
        parent::__construct();

        $this->load->helper(array('form', 'url'));
        $this->load->library('form_validation');
        $this->load->library('security');
        $this->load->library('tank_auth');
        $this->load->model('users/usermodel');
    }
    
    function index()
    {
        if (!$this->tank_auth->is_logged_in())
        {
            redirect('/auth/login');
        }
        else
        {
            $data['user_id'] = $this->tank_auth->get_user_id();
            $data['username'] = $this->tank_auth->get_username();
            
        }
    }
    
    function search_admins()
    {
        $data['query']=$this->usermodel->search_admins(
            $this->input->post('search')
        );
        $this->load->view('admin/users/search_result', $data);
    }
}

model

class UserModel extends CI_Model
{

    function _construct() {
        parent::_construct();
        $this->load->helper(array('form', 'url'));
        $this->load->library('form_validation');
        $this->load->library('security');
        $this->load->library('tank_auth');
        $this->load->model('users/usermodel');
        $this->load->database();
    }

    function search_admins($search)
    {
        return $query = $this->db->get_where('users', array('username =' => '$search'))->result();
    }
}

view for the result

<div id="admin-col">
    <table>
        <tr>
            <th>ID</th>
            <th>Username</th>
            <th>Email Address</th>
            <th>Actions</th>
        </tr>
        <?php foreach ($query as $row) { ?>
            <tr>
                <td><?php print $row->id; ?></td>
                <td><?php print $row->username; ?></td>
                <td><?php print $row->email; ?></td>
                <td>
                    <?= anchor('userslist/get_Admin/' . $row->id, 'Edit');?>
                    &nbsp;|&nbsp;<?= anchor('userslist/deleteAdmin/' . $row->id, 'Delete'); ?>
                </td>
            </tr>
        <?php }?>
    </table>
</div>

Solution

  • you had

    array('username ='=> '$search')
    

    in your search_admins() function

    try

    array('username'=> $search)
    

    instead