Эхо строка 30 с php из sql результата - PullRequest
1 голос
/ 25 августа 2009

Я хочу получить результат из sql с неограниченным числом строк, я не хочу использовать limit в своем выражении sql, потому что мне нужно знать общее количество строк. Но я просто хочу echo, например, строка 30-60.

Я использую php.

Ответы [ 4 ]

4 голосов
/ 25 августа 2009

Сначала запустите этот оператор:

SELECT  SQL_CALC_FOUND_ROWS
        *
FROM    mytable
ORDER BY
        mycol
LIMIT 30, 30

, получить строки и сохранить их в массив.

Сразу после этого запустите этот оператор:

SELECT  FOUND_ROWS()

, который покажет вам общее количество строк, которые будут возвращены предыдущим оператором, если не будет LIMIT предложения.

1 голос
/ 25 августа 2009

http://php.net/manual/en/function.mysql-data-seek.php

mysql_data_seek() перемещает внутренний указатель строки результата MySQL, связанного с указанным идентификатором результата, чтобы указывать на указанный номер строки. Следующий вызов функции извлечения MySQL, такой как mysql_fetch_assoc(), вернет эту строку.

mysql_data_seek($res, 30);
for ($i = 0; $i < 30; ++$i) {
  $row = mysql_fetch_assoc($res);
  var_dump($row);      
}
0 голосов
/ 25 августа 2009

Я считаю, что Кассной означает это:

SELECT SQL_CALC_FOUND_ROWS * FROM  accounts ORDER BY accountID LIMIT 30

и затем запустите этот оператор select, чтобы найти количество строк:

select found_rows();

Вы не должны выполнять какие-либо запросы, используя * конечно, потому что это ухудшает производительность. Используйте названия столбцов, которые вам нужны. Я думаю, что это будет лучший способ, потому что он самый эффективный. Нет необходимости возвращать всю таблицу, если вам нужен только счетчик и 30 строк.

0 голосов
/ 25 августа 2009
$query=mysql_query("SELECT....");
$array=array();
while($row=mysql_fetch_row($query)){
$array[]=$row;
}

Теперь у вас есть массив $ array, который содержит все строки. Если вы хотите напечатать только строки от 30 до 60, используйте это:

for($i=30;$i<60;$i++) echo $array[$i][0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...