пожлуйста помогите устранить ошибку с SELECT_FOUND_ROWS()

agga_gaag

Новичок
пожлуйста помогите устранить ошибку с SELECT_FOUND_ROWS()

Привет всем!

Вот мой код:
PHP:
$sql =  "SELECT SQL_CALC_FOUND_ROWS *
FROM %s p, %s s   
WHERE p.section_id = s.id AND s.url = '%s'  
ORDER BY p.date_added DESC LIMIT %d, %d";        

$prepared_sql = sprintf($sql, ....);          
$resultset = mysql_query($prepared_sql);
while ($row = mysql_fetch_assoc($resultset)) {  $items[] = $row;  }            

$prepared_sql = 'SELECT FOUND_ROWS()';  
$resultset = mysql_query($prepared_sql);
$count = mysql_result($resultset, 0, 0); /// ->>>>>>>выдаёт 1, хотя там около 40 всего
Пожалуйста помогите разобраться. Когда использую count(*) всё работает как надо.

Спасибо

-~{}~ 21.11.06 09:08:

неужели из-за того, что я сделал следующее

ini_set('mysql.trace_mode', 1);

если так, то почему?

Спасибо
 

Lexx_DN

Новичок
Если mysql.trace_mode включен, то показываются все warning и error, полученные от MySql, а у тебя скорее всего все warning оключены. Все такие $resultset надо очищать. Поставть E_WARNING для error_reporting и увидишь. Попробуй
PHP:
$prepared_sql = 'SELECT FOUND_ROWS()';  
$resultset1 = mysql_query($prepared_sql);
$count = mysql_result($resultset1, 0, 0);
mysql_free_result($resultset);
mysql_free_result($resultset1);
 

agga_gaag

Новичок
Спасибо Lexx_DN!

вот моё решение
отключил mysql.trace_mode
и всё стало работать.
Это, что ты и имеешь ввиду?

Спасибо
 
Сверху