Quick Search:

Mode

Context

Displaying 3 lines of context. None | Less | More | Full

Other Diffs

Ignore

Blank Lines Whitespace:

Diff

5
 
48
 
48
 
mysql.php
_> 11 <?php
  22 /*
<> 3 -  $Id: mysql.php 5 2005-01-31 01:40:15Z hpdl $
   3+  $Id: mysql.php 48 2005-03-08 23:27:48Z hpdl $
44 
  55   osCommerce, Open Source E-Commerce Solutions
  66   http://www.oscommerce.com
     
 !
226226       if (strpos($sql_query, 'SQL_CALC_FOUND_ROWS') !== false) {
  227227         $bb = $this->query('select found_rows() as total');
  228228       } else {
<> 229 -        $total_query = substr($sql_query, 0, strpos($sql_query, ' limit'));
  230 -        $bb = $this->query('select count(' . $select_field . ') as total ' . substr($total_query, strpos($sql_query, 'from ')));
   229+        $total_query = substr($sql_query, 0, strpos($sql_query, ' limit '));
   230+
   231+        $pos_to = strlen($total_query);
   232+        $pos_from = strpos($total_query, ' from ');
   233+
   234+        if (($pos_group_by = strpos($total_query, ' group by ', $pos_from)) !== false) {
   235+          if ($pos_group_by < $pos_to) {
   236+            $pos_to = $pos_group_by;
   237+          }
   238+        }
   239+
   240+        if (($pos_having = strpos($total_query, ' having ', $pos_from)) !== false) {
   241+          if ($pos_having < $pos_to) {
   242+            $pos_to = $pos_having;
   243+          }
   244+        }
   245+
   246+        if (($pos_order_by = strpos($total_query, ' order by ', $pos_from)) !== false) {
   247+          if ($pos_order_by < $pos_to) {
   248+            $pos_to = $pos_order_by;
   249+          }
   250+        }
   251+
   252+        $bb = $this->query('select count(' . $select_field . ') as total ' . substr($total_query, $pos_from, ($pos_to - $pos_from)));
<_ 231253       }
  232254 
  233255       return $bb->value('total');