Sql sonucu gelen php ile yankı sıra 30?

4 Cevap php

Ben sınırsız satır ile sql bir sonuç almak istiyorum, ben satır sayısını bilmeniz gerekir çünkü benim sql tablosunda limit kullanmak istemiyorum. Ama ben sadece echo, örneğin 30-60 satır istiyorum.

Ben php kullanmak.

4 Cevap

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

mysql_data_seek() Belirtilen satır sayısına işaret Belirtilen sonuç tanımlayıcı ile ilişkili MySQL sonucunun içsel satır hareket ettirir. Böyle mysql_fetch_assoc(), bu satır dönmek gibi bir MySQL getirmesi işlevi sonraki çağrı.

mysql_data_seek($res, 30);
for ($i = 0; $i < 30; ++$i) {
  $row = mysql_fetch_assoc($res);
  var_dump($row);      
}

İlk olarak, bu ifadeyi çalıştırın:

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

, Satırlarını ve bir diziye kaydedebilirsiniz.

Hemen ardından, bu ifadeyi çalıştırın:

SELECT  FOUND_ROWS()

Size hiçbir LIMIT fıkra olarak önceki deyim tarafından döndürülen olacağını toplam satır sayısını gösterir hangi.

$query=mysql_query("SELECT....");
$array=array();
while($row=mysql_fetch_row($query)){
$array[]=$row;
}

Şimdi tüm satırları içeren $ dizi dizi var. Eğer 30 ve 60 arasında sadece satır yazdırmak istiyorsanız bunu kullanın:

for($i=30;$i<60;$i++) echo $array[$i][0];

Ben Quassnoi bu gelir inanıyoruz:

SELECT SQL_CALC_FOUND_ROWS * FROM  accounts ORDER BY accountID LIMIT 30

ve sonra satır sayısını bulmak için bu select deyimi çalıştırın:

select found_rows();

Bunu performansı bozar tabii, çünkü * kullanarak herhangi bir sorgu yapmak gerekiyordu. İhtiyacınız sütunların adları kullanın. Ben en verimli çünkü bu en iyi yol olacağını düşünüyorum. Sadece bir sayı ve 30 satırları gerekirse tüm tablo dönmek için gerek yok.