how to count the number of rows returned by query in Codeigniter with Datamapper

Shashi Roy picture Shashi Roy · May 2, 2012 · Viewed 56.1k times · Source

I am using the following query in controller of codeigniter.

    $u -> where('us_email_id', $username);
    $u -> where('us_password', $password1);
    $details = $u -> get();
    $total = count($details);
    echo $total; echo "<br>";
    echo count($details);

In the above code "$u" is the object name for the class "User" for the datamapper "User" where the table name in my database is "users". I want to see how many rows are returned after executing the query. "$total" always displays 1 even if userid and password is not matched. What I want is , if number of rows returned 1 then "ok" else "something wrong". I know its basic but if somebody know it then please help me out. Thanks in advance.

Answer

TigerTiger picture TigerTiger · May 2, 2012

Following is availab in CI - checkout this page - http://codeigniter.com/user_guide/database/results.html

$query->num_rows()

The number of rows returned by the query. Note: In this example, $query is the variable that the query result object is assigned to:

$query = $this->db->query('SELECT * FROM my_table');

echo $query->num_rows(); 

so that in your example above you need to try

$details->num_rows();