public static function fromArray($arr, $dbInstance)
 {
     if (!is_a($dbInstance, "Database")) {
         trigger_logikserror("Database ERROR, DBInstance should be an object of Database");
     }
     $table = null;
     $cols = "";
     $where = null;
     $groupby = null;
     $having = null;
     $orderby = null;
     $index = 0;
     $limit = FALSE;
     $table = $arr['table'];
     $cols = $arr['cols'];
     if (isset($arr['where'])) {
         $where = $arr['where'];
     }
     if (isset($arr['groupby'])) {
         $groupby = $arr['groupby'];
     }
     if (isset($arr['having'])) {
         $having = $arr['having'];
     }
     if (isset($arr['orderby'])) {
         $orderby = $arr['orderby'];
     }
     if (isset($arr['limit'])) {
         $limit = $arr['limit'];
     }
     if (isset($arr['index'])) {
         $index = $arr['index'];
     }
     if (is_array($table)) {
         $obj = QueryBuilder::fromArray($table, $dbInstance);
         $table = $obj->_SQL();
     }
     $objx = QueryBuilder::create($dbInstance)->_selectQ($table, $cols, $where);
     //$objx->_where($where);
     if (isset($arr['join'])) {
         foreach ($arr['join'] as $jn) {
             $query = $jn['query'];
             $condition = $jn['condition'];
             $as = $jn['as'];
             $type = $jn['type'];
             $objx->_join($query, $condition, $as, $type);
         }
     }
     $objx->_groupby($groupby, $having);
     $objx->_orderby($orderby);
     $objx->_limit($limit, $index);
     return $objx;
 }
 public static function fromArray($arr, $dbInstance)
 {
     $table = null;
     $cols = "";
     $where = null;
     $groupby = null;
     $orderby = null;
     $limit = FALSE;
     $table = $arr['table'];
     $cols = $arr['cols'];
     if (isset($arr['where'])) {
         $where = $arr['where'];
     }
     if (isset($arr['groupby'])) {
         $groupby = $arr['groupby'];
     }
     if (isset($arr['orderby'])) {
         $orderby = $arr['orderby'];
     }
     if (isset($arr['limits'])) {
         $limit = $arr['limits'];
     }
     if (is_array($table)) {
         $obj = QueryBuilder::fromArray($table, $dbInstance);
         $table = $obj->_SQL();
     }
     $objx = QueryBuilder::create($dbInstance)->_selectQ($table, $cols);
     $objx = $objx->_where($where);
     if (isset($arr['join'])) {
         foreach ($arr['join'] as $jn) {
             $query = $jn['query'];
             $condition = $jn['condition'];
             $as = $jn['as'];
             $type = $jn['type'];
             $objx = $objx->_join($query, $condition, $as, $type);
         }
     }
     $objx = $objx->_groupby($groupby);
     $objx = $objx->_orderby($orderby);
     $objx = $objx->_limit($limit);
     return $objx;
 }