]> git.mjollnir.org Git - moodle.git/commitdiff
Updated get_records_select() to help Eloy out. :-)
authormoodler <moodler>
Fri, 13 Feb 2004 16:32:02 +0000 (16:32 +0000)
committermoodler <moodler>
Fri, 13 Feb 2004 16:32:02 +0000 (16:32 +0000)
lib/datalib.php

index 6de076dfb52f7383fc0f8c5db386b958f936e779..6248ee52e5b08bd4966d83c0b0a31a0533a3b651 100644 (file)
@@ -482,10 +482,11 @@ function get_records($table, $field="", $value="", $sort="", $fields="*", $limit
 * Can optionally be sorted eg "time ASC" or "time DESC"
 * "select" is a fragment of SQL to define the selection criteria
 * The "key" is the first column returned, eg usually "id"
+* limitfrom and limitnum must both be specified or not at all
 *
 * @param       type description
 */
-function get_records_select($table, $select="", $sort="", $fields="*") {
+function get_records_select($table, $select="", $sort="", $fields="*", $limitfrom="", $limitnum="") {
 
     global $CFG;
 
@@ -493,11 +494,26 @@ function get_records_select($table, $select="", $sort="", $fields="*") {
         $select = "WHERE $select";
     }
 
+    if ($limitfrom !== "") {
+        switch ($CFG->dbtype) {
+            case "mysql":
+                 $limit = "LIMIT $limitfrom,$limitnum";
+                 break;
+            case "postgres7":
+                 $limit = "LIMIT $limitnum OFFSET $limitfrom";
+                 break;
+            default: 
+                 $limit = "LIMIT $limitnum,$limitfrom";
+        }
+    } else {
+        $limit = "";
+    }
+
     if ($sort) {
         $sort = "ORDER BY $sort";
     }
 
-    return get_records_sql("SELECT $fields FROM $CFG->prefix$table $select $sort");
+    return get_records_sql("SELECT $fields FROM $CFG->prefix$table $select $sort $limit");
 }