За последние 24 часа нас посетили 22388 программистов и 1021 робот. Сейчас ищут 695 программистов ...

Помогите решить задачу

Тема в разделе "Сделайте за меня", создана пользователем Luis17, 8 май 2017.

Метки:
  1. Luis17

    Luis17 Новичок

    С нами с:
    8 май 2017
    Сообщения:
    6
    Симпатии:
    0
    [​IMG]
    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

    У меня пропала муза незнаю с чего начать , помогите если можете...
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    С того, что больше всего вызывает вопросов. Например, изучите какое-либо API по нахождению расстояния между двумя точками (Google Maps, Яндекс Карты, etc.). Далее определитесь с тем, как будете находить в БД похожие адреса: MATCH AGAINST, LIKE или, если условия задания позволяют, то какой-нибудь поисковой движок (Sphinx, Elasticsearch и т.д.) И потом уже собирать всё воедино.
     
  3. Luis17

    Luis17 Новичок

    С нами с:
    8 май 2017
    Сообщения:
    6
    Симпатии:
    0
    Проблема в генерировании дб , автоматически генерировать датабазу, создать таблицу , добавить данные....
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    бедняжка

    а нафига тебе это?
     
  5. Luis17

    Luis17 Новичок

    С нами с:
    8 май 2017
    Сообщения:
    6
    Симпатии:
    0
    :) да так задачку дали...
    задачы выполнил, только вот проблема нарисовалась как с русской кодировкой справиться? utf8 и
    cp1251 не помогают. Добавляю в таблицу а там символы.... :(
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    кодировки должны совпадать везде:
    1. в исходниках
    2. в браузере
    3. в базе
    4. в подключении к базе

    проверь и поставь галочки, где проверил =)
     
  7. Luis17

    Luis17 Новичок

    С нами с:
    8 май 2017
    Сообщения:
    6
    Симпатии:
    0
    PHP:
    1. mysqli_set_charset($con,"utf8_general_ci");
    в базе тоже
    Код (Text):
    1. CREATE TABLE `addresses` (
    2.   `id` int(11) NOT NULL,
    3.   `address` varchar(125) CHARACTER SET utf8 NOT NULL,
    4.   `street` varchar(125) CHARACTER SET utf8 NOT NULL,
    5.   `street_name` varchar(125) CHARACTER SET utf8 NOT NULL,
    6.   `street_type` varchar(125) CHARACTER SET utf8 NOT NULL,
    7.   `addresses_adm` varchar(125) CHARACTER SET utf8 NOT NULL,
    8.   `addresses_adm1` varchar(125) CHARACTER SET utf8 NOT NULL,
    9.   `addresses_adm2` varchar(125) CHARACTER SET utf8 NOT NULL,
    10.   `addresses_cord_y` varchar(125) CHARACTER SET utf8 NOT NULL,
    11.   `addresses_cord_x` varchar(125) CHARACTER SET utf8 NOT NULL
    12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    с браузером проблема , googleChrome удалил опцию, когда я копирую в текст и в ручную запускаю запрос в mysql , то оно добавляется на русском, но когда работает
    $con->query($query) , то нечерта не работает...
     
    #7 Luis17, 8 май 2017
    Последнее редактирование модератором: 8 май 2017
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    кодировку подключения к бд не забудь установить
     
  9. Luis17

    Luis17 Новичок

    С нами с:
    8 май 2017
    Сообщения:
    6
    Симпатии:
    0
    mysqli_set_charset($con,"utf8_general_ci");
    --- Добавлено ---
    спасибо, получилось,кажеться проблема была в базе данных , удалил и снова создал...
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    там при создании базы надо указывать дефолтную кодировку
    потом при создании таблиц надо следить, чтобы кодировка полей оставалась именно такая. Т.е. не надо её трогать если дефолтная правильная.

    Правильная кодировка на все случаи жизни: utf8_general_ci
    ci значит case independent, т.е. поиск по ней будет искать совпадения не зависимо от регистра - большие и маленькие - одинаково.
     
    Luis17 нравится это.
  11. Luis17

    Luis17 Новичок

    С нами с:
    8 май 2017
    Сообщения:
    6
    Симпатии:
    0
    можете посоветовать как разобраться с поиском? Если хочу написать вышеупомянутый запрос , мне ведь нужно для каждого столбика написать отдельно?
    WHERE (`имя столбика` LIKE '%".$query."%')
    OR (`имя столбика1` LIKE '%".$query."%') OR (`имя столбика2` LIKE '%".$query."%')") .... и тому подобное...

    А ведь, если поменять места в порядке поискового слово -> Московская 21 or 21 Московская or 21 московская ул то запрос будет работать не правильно...
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    1. приведи его к одной форме
    2. не допускай инъекции