リビジョン | 330 (tree) |
---|---|
日時 | 2013-04-17 07:45:20 |
作者 | kmorimatsu |
Correct item number counting routine.
@@ -763,9 +763,10 @@ | ||
763 | 763 | return $obj; |
764 | 764 | } |
765 | 765 | static public function count_query($query,$data=false){ |
766 | - $query=preg_replace('/^([^\'^"`]|\'[^\']*\'|"[^"]*"|`[^`]*`)+?\sFROM\s/i','SELECT COUNT(*) as result FROM ',$query); | |
766 | + $query=preg_replace('/^([^\'^"`]|\'[^\']*\'|"[^"]*"|`[^`]*`)+?\sFROM\s/i','',$query); | |
767 | + $query=preg_replace('/^([^\'^"`]*?)\s(NATURAL\s+)?(LEFT\s+|LEFT\s+OUTER\s+|LEFT\s+|LEFT\s+)?JOIN\s([^\'^"`]*?)\sWHERE\s/i','$1 WHERE ',$query); | |
767 | 768 | $query=preg_replace('/\sLIMIT\s([^\'^"`]|\'[^\']*\'|"[^"]*"|`[^`]*`)+?$/i','',$query); |
768 | - $res=sql::query($query,$data); | |
769 | + $res=sql::query('SELECT COUNT(*) as result FROM '.$query,$data); | |
769 | 770 | if (!$res) return false; |
770 | 771 | $result=0; |
771 | 772 | while ($row=$res->fetch()) $result+=$row['result']; |