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.
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.
Following is availab in CI - checkout this page - http://codeigniter.com/user_guide/database/results.html
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
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');