2011-02-03 15 views
8

मैं ActiveRecord का उपयोग कर कुछ db querys कर रहा हूँ और मैं परिणाम पृष्ठ पर अंक लगाना करने की जरूरत है तो मैं एकCodeIgniter डाटाबेस क्वेरी सीमा

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

करना, लेकिन मैं किसी भी परिणाम नहीं मिलता है। $this->db->last_query(); का उपयोग करते हुए ऐसा लगता है कि CodeIgniter निम्नलिखित एसक्यूएल

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

जो जब मैं यह PHPMyAdmin अंदर चलाने भी 0 पंक्तियों रिटर्न पैदा करता है।

लेकिन अगर मैं इसे एक रन संशोधित:

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

तो मैं सही परिणाम प्राप्त। कोई विचारधारा क्यों CodeIgniter इस एसक्यूएल उत्पन्न करता है और यह क्यों काम नहीं करता है?

मैं उपयोग CodeIgniter 1.7.3 और MySQL 5.1.41

उत्तर

20

ठीक है, मुद्दा मिल गया।

यह

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

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

प्रथम परम लंबाई है और दूसरा ऑफसेट है, नहीं दूसरी तरह के आसपास के रूप में मैंने सोचा।

संबंधित मुद्दे