Получить второй набор записей из хранимой процедуры

У меня есть хранимая процедура в MySQL. Там есть 2 запроса на выборку. Вот часть этого.

@query="select SQL_CALC_FOUND_ROWS...LIMIT 1, 20"
    PREPARE query FROM @query;
    EXECUTE query;  
    DEALLOCATE PREPARE query;
    select FOUND_ROWS() as numberOfRows;

В диспетчере SQL для моего SQL у меня есть два набора результатов. Один - это запрос, другой - количество его строк. Я получаю первым resultSet с ez sql.

$getReadingsByStreet=$this->db->get_results("call `mbusGetClientsByStreet`('".$_SESSION['street']."',".$_SESSION['page'].",".$_SESSION['bild'].",".$_SESSION['korp'].",".$_SESSION['flat'].",@x);");
            if ($getReadingsByStreet)
            {
                foreach ($getReadingsByStreet as $row) 
                {
                    $_SESSION['pageAmount']=$row->numberOfRows;
                    $res.="<tr><td><a class='serialLink' href='./'>".$row->serial_num."</a></td><td>".$row->value."</td><td>".$row->street." ".$row->bild." ".$row->korp." ".$row->flat."</td></tr>";
                }
        }

К сожалению я не могу получить numberOfRows, $_SESSION не меняет своего значения. Как я могу получить количество строк в php? У него есть LIMIT, поэтому мне нужен SQL_CALC_FOUND_ROWS, чтобы получить его.

1 ответ

Решение

NumberOfRows.$_SESSION всегда 20?

следовать за

хорошо, теперь я понимаю вашу проблему, так как она лучше описана в комментариях:))

то, что вы пропустите, это SQL_CALC_FOUND_ROWS

используйте это так:

SELECT SQL_CALC_FOUND_ROWS * FROM tab_a limit 50;
SELECT FOUND_ROWS();

если вы опустите его, он всегда будет возвращать 50, но если вы включите его, чем фактическое количество, как это было бы без ограничения

Другие вопросы по тегам