Index: /trunk/modules/webform/webform_report.inc
===================================================================
--- /trunk/modules/webform/webform_report.inc (revision 987)
+++ /trunk/modules/webform/webform_report.inc (revision 992)
@@ -19,11 +19,11 @@ function _webform_results_submissions($n
     ' FROM '.
     ' {webform_submissions} ws '.
     ' WHERE ws.nid = %d '.
     ' ORDER BY ws.sid ';
 
-  $res = db_query($query, $nid);
+  $res = pager_query($query, 20, 0, NULL, $nid);
   
   $header[] = t('#');
   $header[] = t('Submitted');
   if (user_access('clear webform results')) {
     $header[] = array('data' => t('Operations'), 'colspan' => '3');
@@ -42,11 +42,11 @@ function _webform_results_submissions($n
       $row[] = l(t('Delete'), "node/$nid/results/delete/". $field->sid, NULL, NULL, NULL, FALSE);
     }
     $rows[] = $row;
   }
   
-  return theme('table', $header, $rows);
+  return theme('table', $header, $rows) . theme('pager', NULL, 20, 0);
 }
 
 /* This function creates a table for all ..
  * @param  integer  $nid the node ID of the node to show results for.
  */
@@ -70,11 +70,11 @@ function _webform_results_table($nid) {
   while ($component = db_fetch_array($res)) {
     $components[] = $component;
   }
 
   // Get all the submissions for the node
-  $submissions = _webform_fetch_submissions($nid);
+  $submissions = _webform_fetch_submissions($nid, 10);
   // Generate a row for each submission
   foreach ($submissions as $sid => $submission) {
     $cell[] = l($sid, 'node/'. $nid, NULL, "sid=". $sid);
     $cell[] = format_date($submission['submitted'], "small");
     $cell[] = $submission['remote_addr'];
@@ -98,11 +98,11 @@ function _webform_results_table($nid) {
   }
   if (!empty($component_headers)) {
     $header = array_merge($header, $component_headers);
   }
 
-  return theme('table', $header, $rows);
+  return theme('table', $header, $rows) . theme('pager', NULL, 10, 0);
 } // end function _webform_results_table($nid)
 
 function _webform_results_download($nid) {
   include_once(drupal_get_path('module', 'webform') ."/webform.inc");
 
@@ -198,11 +198,11 @@ function _webform_results_analysis($nid)
   $query = 'SELECT nid, cid, name, type, value, extra '.
     ' FROM {webform_component} '.
     ' WHERE nid = %d '.
     ' ORDER BY weight, name';
 
-  $components = db_query($query, $nid);
+  $components = pager_query($query, 20, 0, NULL, $nid);
 
   $rows = array();
   $question_number = 0;
 
   $headers = array(
@@ -223,7 +223,7 @@ function _webform_results_analysis($nid)
         $row[1] = array('data' => '<strong>'. $component['name'] .'</strong>', 'colspan' => '10');
         $rows = array_merge($rows, array_merge(array($row), $crows));
       }
     }
   }
-  return theme('table', $headers, $rows);
+  return theme('table', $headers, $rows) . theme('pager', NULL, 20, 0);
 }
Index: /trunk/modules/webform/webform.inc
===================================================================
--- /trunk/modules/webform/webform.inc (revision 987)
+++ /trunk/modules/webform/webform.inc (revision 992)
@@ -91,51 +91,65 @@
 
 function _webform_submission_delete_submit($form_id, $form_values) {
   $nid = $form_values['nid'];
   $sid = $form_values['sid'];
 
   db_query('DELETE FROM {webform_submitted_data} WHERE nid = %d AND sid = %d', $nid, $sid);
   db_query('DELETE FROM {webform_submissions} WHERE nid = %d AND sid = %d', $nid, $sid);
 
   drupal_set_message(t("Submission deleted"));
   drupal_goto('node/'.$nid.'/results');
 } // end function _webform_submission_delete_submit
 
 /**
  * Return all the submissions for a particular node
  */
-function _webform_fetch_submissions($nid) {
-  
-  $query = 'SELECT s.sid, s.submitted, s.remote_addr, sd.cid, sd.no, sd.data '. 
-           'FROM {webform_submissions} as s '. 
-           'INNER JOIN {webform_submitted_data} as sd on (sd.sid = s.sid) '. 
-           'WHERE sd.nid = %d';
-    
-  $res = db_query($query, $nid);
+function _webform_fetch_submissions($nid, $limit=NULL) {
+  
   $submissions = array();
-  $previous = array();
-  
-  // Outer loop: iterate for each submission
-  while ($row = db_fetch_object($res)) {
-    if ($row->sid != $previous) {
+  if (isset($limit)) {
+    $query = 'SELECT sid, submitted, remote_addr FROM {webform_submissions} WHERE nid = %d';
+    $res = pager_query($query, $limit, 0, NULL, $nid);
+    
+    while ($row = db_fetch_object($res)) {
       $submissions[$row->sid]['submitted'] = $row->submitted;
       $submissions[$row->sid]['remote_addr'] = $row->remote_addr;
-    }
-    $submissions[$row->sid]['data'][$row->cid]['value'][$row->no] = $row->data;
-    $previous = $row->sid;
-  }
- 
+      $res2 = db_query('SELECT cid, no, data FROM {webform_submitted_data} WHERE sid = %d', $row->sid);
+      while ($row2 = db_fetch_object($res2)) {
+        $submissions[$row->sid]['data'][$row2->cid]['value'][$row2->no] = $row2->data;
+      }
+    }
+  }
+  else {
+    $query = 'SELECT s.sid, s.submitted, s.remote_addr, sd.cid, sd.no, sd.data '. 
+             'FROM {webform_submissions} as s '. 
+             'INNER JOIN {webform_submitted_data} as sd on (sd.sid = s.sid) '. 
+             'WHERE sd.nid = %d';
+    $res = db_query($query, $nid);
+
+    $previous = -1;
+    
+    while ($row = db_fetch_object($res)) {
+      if ($row->sid != $previous) {
+        $submissions[$row->sid]['submitted'] = $row->submitted;
+        $submissions[$row->sid]['remote_addr'] = $row->remote_addr;
+      }
+      $submissions[$row->sid]['data'][$row->cid]['value'][$row->no] = $row->data;
+      $previous = $row->sid;
+    }
+  }
+
   return $submissions;
 } // end function _webform_fetch_submissions
 
 /* This function is used to fetch a specified submission.
  */
 function _webform_fetch_submission($sid) {
   
   $submission = array();
 
   $query = 'SELECT sd.nid, sd.sid, s.submitted, sd.cid, sd.no, sd.data '. 
            'FROM {webform_submitted_data} as sd '. 
            'LEFT JOIN {webform_submissions} as s on (sd.sid = s.sid) '. 
            'WHERE sd.sid = %d';
 
   $res = db_query($query, $sid);
