i am trying to understand mysqli extension and did google but got very few info on this except php.net which was helpful.
now after all this i am trying to achieve
SQL_CALC_FOUND_ROWS is generally used in SELECT statements with a LIMIT clause.
From the MySQL manual (https://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows):
A SELECT statement may include a LIMIT clause to restrict the number of rows the server returns to the client. In some cases, it is desirable to know how many rows the statement would have returned without the LIMIT, but without running the statement again. To obtain this row count, include a SQL_CALC_FOUND_ROWS option in the SELECT statement, and then invoke FOUND_ROWS() afterward
In your example above, you don't use LIMIT to keep the number of results down so using FOUND_ROWS() will only mean an extra call back to the database. Please check out the other answers here for information on how to get the number of rows returned. Good luck.
using mysqli you do it the following way (assuming the mysqli object is already created -- you can also use the procedure methods, just slightly different):
$sql = "SELECT SQL_CALC_FOUND_ROWS *, post.id as pid, bla bla
FROM account ORDER BY pid ASC". $eb["array"]['querylimit'];
$result = $mysqli->query($sql);
$TotalRcount = $result->num_rows;
while($row=$result->fetch_assoc()){
$col1 = $row['col1']; // col1 is a placeholder for whatever column you are reading
//read columns
}
You may try this:
//Establish connection using mysqli api
$conn = mysqli_connect('hostname', 'username', 'password', 'database_name');
$sql = "SELECT SQL_CALC_FOUND_ROWS *, post.id as pid, bla bla FROM account ORDER BY pid ASC". $eb["array"]['querylimit'];
$sql2 = "SELECT FOUND_ROWS()";
$result1 = $conn->query($sql);
$result2 = $conn->query($sql2);
$TotalRcount = $result2->fetch_row();
// Performing record count [current]
// $RecordCount = $result->num_rows();
while($row = $result->fetch_array(MYSQLI_BOTH)){
// read columns
}
In a while loop i have used MYSQLI_BOTH constant but you may change it to MYSQLI_NUM or MYSQLI_ASSOC whichever you need.