$ Uri и $ perPage Codeigniter в запросе БД - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть следующая функция в моей модели для извлечения некоторых данных из базы данных, и я использую класс разбиения на страницы codeigniter по умолчанию, и для этого у меня есть $ perPage и $ uri в следующем коде.

function payment_due($month,$year,$fee_type,$perPage,$uri ) { 

$getData = $this->db->query("SELECT DISTINCT studentid,studentname FROM
 student  WHERE NOT EXISTS
 (SELECT * FROM studentpayment1 JOIN studentpayment2 
                      ON studentpayment1.paymentid=studentpayment2.pid
WHERE fee_month='$month' AND fee_type='$fee_type' 
 AND fee_year='$year' AND student.studentid=studentpayment1.studentid )
 " );


        if($getData->num_rows() > 0)
        return $getData->result_array();
        else
        return null;
        }

Обычно, когда я выбираю данные из таблицы, я использую $ perPage и $ uri вот так->

$getData = $this->db->get('', $perPage, $uri);

Теперь мой вопрос, не могли бы вы, пожалуйста, скажите мне, где я должен использовать $ perPage и $ uri в вышеуказанной функции?

Заранее спасибо:)

Если я использую $ perPage, $ uri в конце моего запроса к базе данных, я получаю следующую ошибку:

  A Database Error Occurred
 Error Number: 1064

You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL  server version for the right syntax to
use near '15' at line 3

 SELECT DISTINCT studentid,studentname FROM student WHERE NOT EXISTS
   (SELECT * FROM   studentpayment1 JOIN studentpayment2
  ON  studentpayment1.paymentid=studentpayment2.pid WHERE 
 fee_month='February' AND fee_type='Monthly Fee' AND fee_year='2012'
  AND student.studentid=studentpayment1.studentid ) LIMIT ,15

  Filename: C:\xampp\htdocs\utc\system\database\DB_driver.php

Номер строки: 330 `

1 Ответ

0 голосов
/ 21 февраля 2012

В user_guide вы можете увидеть пример кода для $this->db->get() и что получается:

Второй и третий параметры позволяют установить предел и смещение пункт:

$query = $this->db->get('mytable', 10, 20);

// Produces: SELECT * FROM mytable LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)

Таким образом, вам нужно задать LIMIT в своем запросе, добавив в конце что-то вроде этого:

LIMIT $uri,$perPage
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...