1. Write a tool for importing this information into MySQL DB 2. make a search form, user can type address (ex. Московская 21 or 21 Московская or 21 московская str...), system must recognize this address and bring similar addresses to client for choosing the correct one (ex. if search string is Московская 2, system must suggest to user 2 variants: 1. Московская 28, 2. Московская 2), then , after selecting correct one, system must bring the table with DISTANCES (in KM) from client's address to all other addresses divided in 3 groups.. 1.Distance < 3 Km 2. Distance From 3 Km to 10 Km 3. Distance more than 10 K У меня пропала муза незнаю с чего начать , помогите если можете...
С того, что больше всего вызывает вопросов. Например, изучите какое-либо API по нахождению расстояния между двумя точками (Google Maps, Яндекс Карты, etc.). Далее определитесь с тем, как будете находить в БД похожие адреса: MATCH AGAINST, LIKE или, если условия задания позволяют, то какой-нибудь поисковой движок (Sphinx, Elasticsearch и т.д.) И потом уже собирать всё воедино.
Проблема в генерировании дб , автоматически генерировать датабазу, создать таблицу , добавить данные....
да так задачку дали... задачы выполнил, только вот проблема нарисовалась как с русской кодировкой справиться? utf8 и cp1251 не помогают. Добавляю в таблицу а там символы....
кодировки должны совпадать везде: 1. в исходниках 2. в браузере 3. в базе 4. в подключении к базе проверь и поставь галочки, где проверил =)
PHP: mysqli_set_charset($con,"utf8_general_ci"); в базе тоже Код (Text): CREATE TABLE `addresses` ( `id` int(11) NOT NULL, `address` varchar(125) CHARACTER SET utf8 NOT NULL, `street` varchar(125) CHARACTER SET utf8 NOT NULL, `street_name` varchar(125) CHARACTER SET utf8 NOT NULL, `street_type` varchar(125) CHARACTER SET utf8 NOT NULL, `addresses_adm` varchar(125) CHARACTER SET utf8 NOT NULL, `addresses_adm1` varchar(125) CHARACTER SET utf8 NOT NULL, `addresses_adm2` varchar(125) CHARACTER SET utf8 NOT NULL, `addresses_cord_y` varchar(125) CHARACTER SET utf8 NOT NULL, `addresses_cord_x` varchar(125) CHARACTER SET utf8 NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; с браузером проблема , googleChrome удалил опцию, когда я копирую в текст и в ручную запускаю запрос в mysql , то оно добавляется на русском, но когда работает $con->query($query) , то нечерта не работает...
mysqli_set_charset($con,"utf8_general_ci"); --- Добавлено --- спасибо, получилось,кажеться проблема была в базе данных , удалил и снова создал...
там при создании базы надо указывать дефолтную кодировку потом при создании таблиц надо следить, чтобы кодировка полей оставалась именно такая. Т.е. не надо её трогать если дефолтная правильная. Правильная кодировка на все случаи жизни: utf8_general_ci ci значит case independent, т.е. поиск по ней будет искать совпадения не зависимо от регистра - большие и маленькие - одинаково.
можете посоветовать как разобраться с поиском? Если хочу написать вышеупомянутый запрос , мне ведь нужно для каждого столбика написать отдельно? WHERE (`имя столбика` LIKE '%".$query."%') OR (`имя столбика1` LIKE '%".$query."%') OR (`имя столбика2` LIKE '%".$query."%')") .... и тому подобное... А ведь, если поменять места в порядке поискового слово -> Московская 21 or 21 Московская or 21 московская ул то запрос будет работать не правильно...