|
@@ -154,7 +154,8 @@ class Sql
|
|
|
if (isset($set['join'])) {
|
|
|
$temp = explode('_', $table);
|
|
|
$prefix = $temp[0] . '_' . $temp[1] . '_';
|
|
|
- $table .= ' AS ' . $temp[2];
|
|
|
+ $temp = implode('_', array_slice($temp, 2));
|
|
|
+ $table .= ' AS ' . $temp;
|
|
|
foreach ($set['join'] as $k => $v) {
|
|
|
$table .= ' ' . $v['type'] . ' ' . $prefix . $v['table'] . ' AS ' . $v['table'] . ' ON ' . $v['on'];
|
|
|
}
|
|
@@ -206,8 +207,7 @@ class Sql
|
|
|
self::field($first_link, $bind, $i, $k1, '=', $v1, $field, $type);
|
|
|
}
|
|
|
}
|
|
|
- $first_link = ltrim($first_link, ' and ');
|
|
|
- $second .= ' ' . $k . ' (' . $first_link . $second_link . ')';
|
|
|
+ $second .= ' ' . $k . ' (' . self::replace($first_link) . $second_link . ')';
|
|
|
} else {
|
|
|
if (is_array($v)) {
|
|
|
self::field($second, $bind, $i, $k, $v[0], $v[1], $field, $type);
|
|
@@ -216,7 +216,7 @@ class Sql
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return ' WHERE ' . ltrim($first . $second, ' and ');
|
|
|
+ return ' WHERE ' . self::replace($first . $second);
|
|
|
} elseif (is_numeric($param)) {
|
|
|
if ($type == 'Influxdb') {
|
|
|
return ' WHERE "id" = \'' . $param . '\'';
|
|
@@ -237,7 +237,12 @@ class Sql
|
|
|
$type = $b;
|
|
|
$b = array();
|
|
|
}
|
|
|
- if ($f && empty($f[$k]) && strpos('id,cdate', $k) === false) {
|
|
|
+ $g = '';
|
|
|
+ if (strstr($k, '.')) {
|
|
|
+ $g = explode('.', $k);
|
|
|
+ $k = $g[1];
|
|
|
+ $g = $g[0] . '.';
|
|
|
+ } elseif ($f && empty($f[$k]) && strpos('id,cdate', $k) === false) {
|
|
|
return;
|
|
|
}
|
|
|
$s .= ' and ';
|
|
@@ -255,7 +260,7 @@ class Sql
|
|
|
$e = '=';
|
|
|
}
|
|
|
}
|
|
|
- $k = $x.$k.$x;
|
|
|
+ $k = $g.$x.$k.$x;
|
|
|
if (strpos($e,'in') !== false) {
|
|
|
if (!is_array($v)) {
|
|
|
$v = explode(',', $v);
|
|
@@ -340,4 +345,11 @@ class Sql
|
|
|
{
|
|
|
return 'round((st_distance(point(lng, lat), point('.$lng.', '.$lat.'))*111195)/1000, 2) as distance';
|
|
|
}
|
|
|
+ private static function replace($string)
|
|
|
+ {
|
|
|
+ if (strpos($string, ' and ') === 0) {
|
|
|
+ $string = substr($string, 5);
|
|
|
+ }
|
|
|
+ return $string;
|
|
|
+ }
|
|
|
}
|