Shashi Roy
Shashi Roy

Reputation: 333

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

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.

Upvotes: 5

Views: 56275

Answers (3)

Prabhu Manickavelu
Prabhu Manickavelu

Reputation: 11

If the password was encrypted and try again

or if all the data part is fine the try to use the following code

$this->db->where(array('us_email_id' => $username,'us_password' => $password1));
echo $this->db->count_all_results('users');

Upvotes: 1

Fad
Fad

Reputation: 9858

If you just want to count the total rows found, call the count() method instead of get().

$u->where('us_email_id', $username);
$u->where('us_password', $password1);
$total = $u->count();

But, if you also need the data, then you can simply call get(), and after that use PHP count() to count how many elements are there inside the all property of the object.

$u->where('us_email_id', $username);
$u->where('us_password', $password1);
$u->get();
$total = count($u->all);

You can check out the documentation for more details.

Upvotes: 6

TigerTiger
TigerTiger

Reputation: 10806

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();

Upvotes: 8

Related Questions