Перейти к содержанию
Форум поддержки пользователей VamShop

Что-то непонятное с ajax поиском.


Рекомендуемые сообщения

Поиск возвращает что угодно, но только не то, что нужно.

Если нажать кнопку "искать", то найденные результаты вполне себе оправдывают ожидания, а вот аякс поиск из всего богатства выбора вывел только один товар и то не понятно, как он его нашел.

Копался в модулях, докопался до ajaxQuickFind.php

Если выдрать оттуда запрос и запустить его в mysql, то все отлично находит. А вот само по себе не находит. То есть, вроде находит, но выводит только фразу "Первые 15 позиций...", иногда выводит какое-то одно наименование.

while($products = vam_db_fetch_array($products_query))

Вот сюда он либо вообще не заходит, либо проходит в цикле только один раз, хотя запрос вернул явно больше строк.

Ссылка на сообщение
Поделиться на другие сайты

Я там и смотрел. =) Запрос нормально работает. А вот результаты запроса выводятся как-то странно... Хотя, аяксовая быстрая покупка работает отлично и результаты правильные показывает.

Версия магазина 1.50.

Ссылка на сообщение
Поделиться на другие сайты

Ну так быстрый заказ как раз сделан из бокса поиска, они в принципе одинаковые.

Возможно, как-то запрос sql поправить нужно.

Ссылка на сообщение
Поделиться на другие сайты

замени условие

if($products = vam_db_num_rows($products_query)>0) {
на
if(vam_db_num_rows($products_query)) {
это думаю и всем исправить нужно так как 1 запись не находит... у самого нет бокса поиска раньше не замечал.. ) тема подняла интерес узнав о match/against можна сделать и поиск по статьям и т.д. впринцыпе) +еще при вводе слов через пробел оно убирает эти пробелы и берет все как 1 кейворд... это баг наверное!? проблема думаю гдето тут

$q = addslashes(preg_replace("%[^0-9a-zA-Zа-яА-Я]%", "", $_REQUEST['keywords']) );
[/code]

но жаль с регекспами не знаком еще ;/

если кому нужно:

http://www.php.su/mysql/manual/?page=Fulltext_Search

http://www.php.su/articles/?cat=phpdb&page=015#part_2

просто и доступно

Ссылка на сообщение
Поделиться на другие сайты

mosquito, блин, вот чего бы тебе это часа на 3 пораньше не написать? =) Я уже сам допер до этого. =) А кто-то вообще этот поиск тестил, что он так криво работает?

То, что первая строчка не отображается, это полбеды, еще поиск не все русские буквы понимает, ну и глюк с пробелом, как ты уже сказал. Решается это все вот таким регекспом:

$q = addslashes(preg_replace("%[^0-9a-zA-Zа-яА-Я]%iu", "", $_REQUEST['keywords']) );

iu - спецсимвол для того, чтобы регекспы правильно работали с utf-8.

Спасибо за участие! Всё, вроде с поиском глюков больше нет. =)

Ссылка на сообщение
Поделиться на другие сайты

>mosquito, блин, вот чего бы тебе это часа на 3 пораньше не написать? =)

у самого нет бокса поиска раньше не замечал.. )

тогда нужно закинуть в bugs и внести исправления)

даж если не все исправили уже лутче чем было)

странно у меня всеравно не работает больше одного кейворда...

если пишеш "product new" в $q занесется +productew*

Ссылка на сообщение
Поделиться на другие сайты

mosquito

А в каком файле вот эта строка?!


if($products = vam_db_num_rows($products_query)>0) {
[/code]

Что-то не нашёл в /includes/modules/ajax/ajaxQuickFind.php

Ссылка на сообщение
Поделиться на другие сайты

>if($products = vam_db_fetch_array($products_query)) {

скопировал немного не то )

в этом файле 53 строка

if($products = vam_db_fetch_array($products_query)) {

Ссылка на сообщение
Поделиться на другие сайты

Я тоже в регекспах не силен, напутал, попробуй так: "%[^0-9a-zA-Zа-яА-Я\s]%iu"

\s - пробельные символы.

vam_db_num_rows нужно в AjaxAddQuickie.php тоже добавить, так тот же косяк.

Ссылка на сообщение
Поделиться на другие сайты

я немного непонимаю для чего этот бокс...

но судя из запроса он берет products_model для сравнения

странно что мы использовали это поле как гарантия производителя (только мы?! 0о)

products_model = products_sku - в других движках?0о

и вообще зачем этот бокс не каждый же знает это products_model нужного товара...

Ссылка на сообщение
Поделиться на другие сайты

Есть например всякие каталоги, где заказывают по артикулу, вот для подобных магазинов такой вариант удобный, либо запчасти всякие, где тоже по коду (артикулу) можно быстро заказать.

Не для всех вобщем.

Ссылка на сообщение
Поделиться на другие сайты
  • 9 months later...

Не знаю, я вот попрбовал в firefox. работает.

Это лишь небольшая подсказка, не полноценный поиск всё-таки.

Ссылка на сообщение
Поделиться на другие сайты

Для артикула ведь есть бокс быстрый поиск (add_quickie) или как он там называется правильно, быстрый заказ, по-моему.

У меня и с ajax нормально, не знаю даже, почему ошибка.

Ссылка на сообщение
Поделиться на другие сайты
  • 11 months later...
×
×
  • Создать...