<MyRusakov.ru />

Создание Интернет-магазина на PHP и MySQL

Создание Интернет-магазина на PHP и MySQL

Видеокурс "Создание Интернет-магазина на PHP и MySQL" - это уникальный курс по созданию Интернет-магазина с нуля. Особенностью данного курса является то, что создание идёт с самого начала, то есть от идеи. Далее создаётся дизайн всех необходимых страниц, после делается их вёрстка. Затем создаётся движок на PHP и MySQL, после делается Admin-панель и, наконец, готовый сайт размещается в Интернете.

Адрес созданного в этом курсе сайта: http://storedvd.ru

Всё создание сайта будет происходить на Ваших глазах, поэтому Вы легко сможете повторить весь процесс создания сложного функционального сайта уже при разработке своего портала.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Поиск по релевантности
18.05.2013 22:34:12 Поиск по релевантности Сообщение #1
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

У меня свой сервер: http://myrusakov.ru/server.html
Но я использую вот такой поиск: http://myrusakov.ru/video-search.html
А релевантность у меня по количеству вхождений в статью (функция substr_count()).
Профиль Ответить
19.05.2013 07:44:27 Поиск по релевантности Сообщение #2
ilyadenisovid

ilyadenisovid

Мастер

Мастер

Дата регистрации:
28.01.2013 18:32:29

Сообщений: 213

я заметил, что поиск по релевантности очень медленный.Михаил, я сделал функцию счета общих вхождений, но 2 проблемы: во-первых, эту функция учитывает регистр, как это исправить? и как сделать сортировку по числу вхождений
Профиль Ответить
19.05.2013 12:06:54 Поиск по релевантности Сообщение #3
ilyadenisovid

ilyadenisovid

Мастер

Мастер

Дата регистрации:
28.01.2013 18:32:29

Сообщений: 213

А как сделать сортировку по числу вхождений? Как сделать, чтобы не учитывался регистр в функции substr_count()?
Профиль Ответить
19.05.2013 12:44:23 Поиск по релевантности Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Перевести искомую строку и исходный текст в нижний регистр предварительно.
Профиль Ответить
19.05.2013 13:18:53 Поиск по релевантности Сообщение #5
ilyadenisovid

ilyadenisovid

Мастер

Мастер

Дата регистрации:
28.01.2013 18:32:29

Сообщений: 213

делаю так:
$t = substr_count(strtolower($results[$i]["title"]), strtolower($words));

все равно не срабатывает
Профиль Ответить
19.05.2013 17:20:02 Поиск по релевантности Сообщение #6
ilyadenisovid

ilyadenisovid

Мастер

Мастер

Дата регистрации:
28.01.2013 18:32:29

Сообщений: 213

Михаил, все плучилось надо было перекодировать mb_internal(). Последний вопрос все выводится количество совпадений, но как сделать, чтобы все сортировалось по убыванию совпадений?
Профиль Ответить
19.05.2013 21:35:46 Поиск по релевантности Сообщение #7
ilyadenisovid

ilyadenisovid

Мастер

Мастер

Дата регистрации:
28.01.2013 18:32:29

Сообщений: 213

Михаил. Как сделать сортироаку записей 2мерного массива результатов по количеству вхождений
Профиль Ответить
20.05.2013 10:21:45 Поиск по релевантности Сообщение #8
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

http://myrusakov.ru/php-sort-marray.html
Профиль Ответить
20.05.2013 12:19:58 Поиск по релевантности Сообщение #9
ilyadenisovid

ilyadenisovid

Мастер

Мастер

Дата регистрации:
28.01.2013 18:32:29

Сообщений: 213

Понял. Но как отсортировать массив по количеству совпадений, если совпадения мы нахолим только в цикле, кот код

$words = htmlspecialchars($_GET["words"]);
$results = searchArticles($words);
if($words == "" echo "Пустой запрос!";
elseif(count($results) == 0) echo "Ничего не найдено!";
else {
echo "<p><h3>Результаты поиска(".count($results).":</h3></p><p>";
usort($results, "compare";
function compare ($v1, $v2) {
if ($v1["date_reg"] == $v2["date_reg"]) return 0;
return ($v1["date_reg"] < $v2["date_reg"])? -1: 1;
}
for($i = 0; $i < count($results); $i++) {
$s = $i + 1;
$tit = mb_convert_case($results[$i]["title"], MB_CASE_LOWER, "UTF-8";
$fut = mb_convert_case($results[$i]["full_text"], MB_CASE_LOWER, "UTF-8";
$wor = mb_convert_case($words, MB_CASE_LOWER, "UTF-8";
$t = substr_count($tit, $wor);
$f = substr_count($fut, $wor);
echo $t + $f;
echo "Вывод результатов";
}
Профиль Ответить
20.05.2013 13:26:33 Поиск по релевантности Сообщение #10
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Добавьте в каждый из массивов ещё один элемент, куда поместите количество совпадений. А затем по этом ключу сделайте сортировку двумерного массива.
Профиль Ответить