- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
$dbh = new PDO("mysql:host=$this->dbHost;dbname=$this->dbName", $this->dbUser, $this->dbPassword);
$dbh->exec("set names utf8");
$street = $streetPart.'%';
if (isset($arChooseCity[$cityIndex])) {
$condition =
"(city_az LIKE '$city'"
." OR city_az LIKE '$arChooseCity[$cityIndex]'"
." OR city_ru LIKE '$arChooseCity[$cityIndex]'"
." OR city_en LIKE '$arChooseCity[$cityIndex]'"
." OR city_ru LIKE '$city'"
." OR city_en LIKE '$city')"
." AND (geo_az LIKE '$street'"
." OR geo_ru LIKE '$street'"
." OR geo_en LIKE '$street'"
." OR geo_az LIKE '% $street'"
." OR geo_en LIKE '% $street'"
." OR geo_ru LIKE '% $street')"
;
}
else {
$condition =
"(city_az LIKE '$city'"
." OR city_ru LIKE '$city'"
." OR city_en LIKE '$city')"
." AND (geo_az LIKE '$street'"
." OR geo_ru LIKE '$street'"
." OR geo_en LIKE '$street'"
." OR geo_az LIKE '% $street'"
." OR geo_en LIKE '% $street'"
." OR geo_ru LIKE '% $street')"
;
}
$condition_type = " AND type = 'geo_object'";
$condition_street = " AND type = 'street'";
$query_street = $dbh->prepare("SELECT * from `addresses_new_new` WHERE $condition $condition_street GROUP BY street_{$lang}, city_{$lang} ORDER BY weight DESC LIMIT 0, {$maxLimit}");
$query_type = $dbh->prepare("SELECT * from `addresses_new_new` WHERE $condition $condition_type LIMIT 0, {$maxLimit}");
$query_street->execute();
$query_type->execute();
В таких случаях лучше вообще использовать внешний индексатор типа Sphinx или mnoGoSearch.
https://dev.mysql.com/doc/refman/5.7/en/innodb-fulltext-index.html
>внешний индексатор типа Sphinx или mnoGoSearch.
ИМХО лучшее решение
GomnoSearch
Конечно, это не для таких тупых алкашей как ты!
Чушь полная.
PDO это не ORM а драйверонезависимый способ запуска SQL кода.
Даже твой "LIMIT 0" не на каждой БД заведется
Талант PHPшника не пропьешь