2011-02-03 22 views
8

ben ActiveRecord kullanarak bazı db querys yapıyorum ve ben birCodeIgniter Veritabanı sorgu sınırı

$this->db->limit($pPagination['Start'], $pPagination['Length']); 

yapmak ama herhangi bir sonuç alamadım bu yüzden Sonuçları sayfalandırmamayı gerekir. $this->db->last_query(); kullanmak, CodeIgniter aşağıdaki SQL i phpMyAdmin içine çalıştırdığınızda da 0 satır döndürür

SELECT * 
FROM (`viw_contacts`) 
WHERE `user_id` = '1' 
ORDER BY `contact_name` asc 
LIMIT 0 OFFSET 15 

ürettiğini görünüyor. Bunun bir run değiştirirseniz

Ama:

SELECT * 
FROM (`viw_contacts`) 
WHERE `user_id` = '1' 
ORDER BY `contact_name` asc 
LIMIT 0, 15 

Sonra ben doğru sonuçlar elde ederler. CodeIgniter'ın bu SQL'i neden oluşturduğu ve neden çalışmadığı herhangi bir ideea?

Ben CodeIgniter 1.7.3 ve MySQL 5.1.41

cevap

20

Tamam, sorunu tespit kullanın.

O

$this->db->limit($pPagination['Length'], $pPagination['Start']); 

yerine

$this->db->limit($pPagination['Start'], $pPagination['Length']); 

İlk param Uzunluğu olduğunu var ve düşündüğüm gibi ikinci, tersi değil dengeleniyor.