逐步获取查询结果的代码igniter

时间:2018-09-15 18:20:54

标签: php database codeigniter codeigniter-3

我需要做这样的事情:

if (isset($account)) {
    $this->db->where('account', $account);
}

if (isset($subject)) {
    $this->db->where('subject', $subject);
}

if (isset($contact)) {
    $this->db->where('_from', $contact);
}
//here i need to get result
$resul1 = $this->db->get('table');

$limit = 5; $offset =10;
$this->db->limit($limit, $offset);
//here i need to get result with offset and limit
$result2 = $this->db->get('table');

$ result1应该执行此查询

SELECT *
FROM `table`
WHERE `account` = 'some account'
AND `subject` = 'some subject'
AND `_from` = 'name'

和$ result2应该执行此查询($ query1 +偏移量和限制):

SELECT *
FROM `table`
WHERE `account` = 'some account'
AND `subject` = 'some subject'
AND `_from` = 'name'
LIMIT 10, 5

但是$result2作为单独的查询执行:select * FROM table LIMIT10, 5

是否有可能实现这一目标,或者我需要从头开始查询?

1 个答案:

答案 0 :(得分:1)

LIMIT没有limit()函数

result = $this->db->get('table', 0, $offset);

或使用手动选择:

$query = "SELECT *, COUNT(account) AS total FROM `table` WHERE `account` = ? AND `subject` = ? AND `_from` = ? LIMIT 0, ?";
$result = $this->db->query($query, array($account, $subject, $contact, $offset));