diff --git a/system/database.php b/system/database.php index d59a4c3..a1ade32 100644 --- a/system/database.php +++ b/system/database.php @@ -501,8 +501,33 @@ if(!check_function_exists("get_db_tablenames")) { if(!$is_separated) { $tablenames[] = $tablename; } else { - - $sql = sprintf("select table_name from `%s.tables` order by datetime desc", $tablename); + $a = !empty($end_dt); + $b = !empty($start_dt); + $c = array( ($a && $b), ($a && !$b), (!$a && $b), (!$a && !$b) ); + + $bind = array( + "end_dt" => $end_dt, + "start_dt" => $start_dt + ); + $sql = ""; + foreach($c as $k=>$v) { + if($v !== false) { + switch($k) { + case 0: + $sql = sprintf("select table_name from `%s.tables` where datetime <= :end_dt and datetime >= :start_dt order by datetime asc", $tablename); + break; + case 1: + $sql = sprintf("select table_name from `%s.tables` where datetime <= :end_dt by datetime asc", $tablename); + break; + case 2: + $sql = sprintf("select table_name from `%s.tables` where datetime >= :start_dt by datetime asc", $tablename); + break; + case 3: + default: + $sql = sprintf("select table_name from `%s.tables` order by datetime asc", $tablename); + } + } + } $rows = exec_db_fetch_all($sql); foreach($rows as $row) { $tablenames[] = $row['table_name'];