Xubayer pantho
Xubayer pantho

Reputation: 329

How to search record from db by selecting search category in codeigniter?

I have list of record in my index page. Now i want to search a particular record/records by choosing the category (e.g phone No, email etc).How can i do this? help..

Here is my view:

    <?php
        $attributes = array('class'=>'searchform', 'id'=>'searchform');
        echo form_open('crud/searchCrud', $attributes);?>
        <div class="formelements">
            <div class="formlbl">
                Search:
            </div>
            <div class="forminput">
                <input type="text" name="searchon" id ="searchon"/>
            </div>
            <div class="searchtyp">
                <select class="searchby" name="searchby">
                    <option value="0">---Select--- </option>
                    <option value="name">Name</option>
                    <option value="email">Email</option>
                    <option value="phone">Phone</option>
                </select>
            </div>
            <div class="searchinput">
                <input type="submit" name="search" value="Search" />
            </div>
        </div>          
        <?php echo form_close();?>

Here is My controller:

    public function searchCrud()
    {
        $records =  $this->crud_mdl->searchCrud();
        foreach ($records as $record) {
            echo $record->name;
        }
    }

Here is My Model:

    public function searchCrud()
    {
        $searchby = $this->input->post('searchby');
        $searchon = $this->input->post('searchon');

        $this->db->get('test')->result();
        return $this->db->like($searchon, $searchby);
    }

Upvotes: 0

Views: 2949

Answers (1)

Parag Tyagi
Parag Tyagi

Reputation: 8970

1) You should never access POST data directly in the Model.
2) Always collect them in Controller and then pass it to the Model.
3) Also always try to create your Model functions, re-usable.

Modified your code a bit. Try running it.


Controller:

public function searchCrud()
{
    $searchby = $this->input->post('searchby');
    $searchon = $this->input->post('searchon');

    $records =  $this->crud_mdl->searchCrud($searchby, $searchon);
    foreach ($records as $record) 
    {
        echo $record->name;
    }
}


Model:

public function searchCrud($searchby, $searchon)
{
    $this->db->like($searchon, $searchby);
    $query = $this->db->get('test');

    if($query->num_rows() > 0)
         return $query->result();
    else
         return FALSE;
}

Upvotes: 2

Related Questions