Dr.Hell 0 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 Поиск возвращает что угодно, но только не то, что нужно. Если нажать кнопку "искать", то найденные результаты вполне себе оправдывают ожидания, а вот аякс поиск из всего богатства выбора вывел только один товар и то не понятно, как он его нашел. Копался в модулях, докопался до ajaxQuickFind.php Если выдрать оттуда запрос и запустить его в mysql, то все отлично находит. А вот само по себе не находит. То есть, вроде находит, но выводит только фразу "Первые 15 позиций...", иногда выводит какое-то одно наименование. while($products = vam_db_fetch_array($products_query)) Вот сюда он либо вообще не заходит, либо проходит в цикле только один раз, хотя запрос вернул явно больше строк. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 Как он ищёт нужно смотреть в /includes/modules/ajax и править запрос. Ссылка на сообщение Поделиться на другие сайты
Dr.Hell 0 Опубликовано 17 апреля, 2009 Автор Жалоба Share Опубликовано 17 апреля, 2009 Я там и смотрел. =) Запрос нормально работает. А вот результаты запроса выводятся как-то странно... Хотя, аяксовая быстрая покупка работает отлично и результаты правильные показывает. Версия магазина 1.50. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 Ну так быстрый заказ как раз сделан из бокса поиска, они в принципе одинаковые. Возможно, как-то запрос sql поправить нужно. Ссылка на сообщение Поделиться на другие сайты
mosquito 0 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 замени условие 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_Searchhttp://www.php.su/articles/?cat=phpdb&page=015#part_2просто и доступно Ссылка на сообщение Поделиться на другие сайты
Dr.Hell 0 Опубликовано 17 апреля, 2009 Автор Жалоба Share Опубликовано 17 апреля, 2009 mosquito, блин, вот чего бы тебе это часа на 3 пораньше не написать? =) Я уже сам допер до этого. =) А кто-то вообще этот поиск тестил, что он так криво работает? То, что первая строчка не отображается, это полбеды, еще поиск не все русские буквы понимает, ну и глюк с пробелом, как ты уже сказал. Решается это все вот таким регекспом: $q = addslashes(preg_replace("%[^0-9a-zA-Zа-яА-Я]%iu", "", $_REQUEST['keywords']) ); iu - спецсимвол для того, чтобы регекспы правильно работали с utf-8. Спасибо за участие! Всё, вроде с поиском глюков больше нет. =) Ссылка на сообщение Поделиться на другие сайты
mosquito 0 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 >mosquito, блин, вот чего бы тебе это часа на 3 пораньше не написать? =) у самого нет бокса поиска раньше не замечал.. ) тогда нужно закинуть в bugs и внести исправления) даж если не все исправили уже лутче чем было) странно у меня всеравно не работает больше одного кейворда... если пишеш "product new" в $q занесется +productew* Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 Исправил в текущем коде это строку, спасибо. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 mosquito А в каком файле вот эта строка?! if($products = vam_db_num_rows($products_query)>0) {[/code]Что-то не нашёл в /includes/modules/ajax/ajaxQuickFind.php Ссылка на сообщение Поделиться на другие сайты
mosquito 0 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 >if($products = vam_db_fetch_array($products_query)) { скопировал немного не то ) в этом файле 53 строка if($products = vam_db_fetch_array($products_query)) { Ссылка на сообщение Поделиться на другие сайты
Dr.Hell 0 Опубликовано 17 апреля, 2009 Автор Жалоба Share Опубликовано 17 апреля, 2009 Я тоже в регекспах не силен, напутал, попробуй так: "%[^0-9a-zA-Zа-яА-Я\s]%iu" \s - пробельные символы. vam_db_num_rows нужно в AjaxAddQuickie.php тоже добавить, так тот же косяк. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 mosquito А можешь поправленный файлик выложить, что-то не понял как должно быть. Ссылка на сообщение Поделиться на другие сайты
mosquito 0 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 вот вроде регексп правильный ajaxQuickFind.php Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 Спасибо, внёс исправление в текущий код. Ссылка на сообщение Поделиться на другие сайты
Dr.Hell 0 Опубликовано 17 апреля, 2009 Автор Жалоба Share Опубликовано 17 апреля, 2009 VaM, в AjaxAddQuickie.php тоже добавил? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 Да, вот прицепил /includes/modules/ajax/ajaxAddQuickie.php ajaxAddQuickie.php Ссылка на сообщение Поделиться на другие сайты
mosquito 0 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 я немного непонимаю для чего этот бокс... но судя из запроса он берет products_model для сравнения странно что мы использовали это поле как гарантия производителя (только мы?! 0о) products_model = products_sku - в других движках?0о и вообще зачем этот бокс не каждый же знает это products_model нужного товара... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 апреля, 2009 Жалоба Share Опубликовано 17 апреля, 2009 Есть например всякие каталоги, где заказывают по артикулу, вот для подобных магазинов такой вариант удобный, либо запчасти всякие, где тоже по коду (артикулу) можно быстро заказать. Не для всех вобщем. Ссылка на сообщение Поделиться на другие сайты
retail 0 Опубликовано 6 февраля, 2010 Жалоба Share Опубликовано 6 февраля, 2010 Подниму тему. Почему аякс поиск у меня работает только в опере? В остальных не работает. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 6 февраля, 2010 Жалоба Share Опубликовано 6 февраля, 2010 Не знаю, я вот попрбовал в firefox. работает. Это лишь небольшая подсказка, не полноценный поиск всё-таки. Ссылка на сообщение Поделиться на другие сайты
retail 0 Опубликовано 6 февраля, 2010 Жалоба Share Опубликовано 6 февраля, 2010 Согласен. Но по артикулу удобно искать. Даже для себя. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 6 февраля, 2010 Жалоба Share Опубликовано 6 февраля, 2010 Для артикула ведь есть бокс быстрый поиск (add_quickie) или как он там называется правильно, быстрый заказ, по-моему. У меня и с ajax нормально, не знаю даже, почему ошибка. Ссылка на сообщение Поделиться на другие сайты
vasya 0 Опубликовано 17 января, 2011 Жалоба Share Опубликовано 17 января, 2011 Пожалуйста, у кого есть правильно работающий ajax поиск, дайте ссылку сайта. Пожааалуйста ) Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения