За последние 24 часа нас посетил 62021 программист и 1594 робота. Сейчас ищут 924 программиста ...

правильное создание поиска на сайте, MVC (Smarty) PHP+MySQL+AJAX

Тема в разделе "PHP для новичков", создана пользователем AlexsaiL, 21 авг 2017.

  1. AlexsaiL

    AlexsaiL Активный пользователь

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    Кто уже сталкивался с поиском на сайте, написание в процедурном стиле по системе MVC используя шаблонизатор. (PHP+MySQL+AJAX ). Подскажите или поделитесь статьями где можно ознакомится с правильным написанием. Написал поиск, но работает криво, с БД выводит не весь запрошенный продукт, а так же выводит не то что нужно, а так же не приходит глобальная переменная языка. В общем все криво и на костылях :D:confused: Перечитал кучу инфы, нужного не нашел. Буду рад любой полезной информации.
     
  2. htmaker

    htmaker Новичок

    С нами с:
    22 авг 2017
    Сообщения:
    12
    Симпатии:
    0
    Опишите подробнее что за сайт, какова его структура. Поиск для каждого сайта может быть по своему уникальным, нет общих решений.
     
  3. AlexsaiL

    AlexsaiL Активный пользователь

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    Пишу интернет магазин, используя шаблонизатор smarty(процедурный стиль)(MVC), есть главная страница, страница вывода продуктов категорий, страница вывода продукта и другие второстепенные страницы, мне необходимо чтобы поиск работал на всех страницах, и вместо основного контента появлялся результат(список найденого продукта). Сайт многоязычный, результат поиска должен выводить продукт взависимости от используемого языка, но у меня выводит только на русском. Хотя на других страницах язык работает нормально. Язык передаю через url.
    в созданном файле search.php подключаю bd.php(базу данных) идет обращение к бд,
    PHP:
    1. SELECT * FROM `product` WHERE `NAME` LIKE '%" . $word . "%' ORDER BY `ORDERA`
    дальше используя id продукта делаю запрос к другой таблицы, собираю все в массив, и подставляю ключи в ниже созданном блоке внешнего вида (карточке продукта). потом все присмаиваю переменной и возвращаю методом ajax и вывожу на сайте. вот только не могу в файле search.php принклюдить файл models.php с другими функциями, а также вывести глобальную переменную языка.
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    все абстрактно, где код?
    если передаете язык в урл- получайте го в search.php из урл и используйте пи запросе к БД
    кстати не обязательно делать множество запросов.... находить ид а потом какие то еще свойства ... можно (и как правило нужно) делать в се в одном запросе
     
  5. AlexsaiL

    AlexsaiL Активный пользователь

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    спасибо, да я завел отдельный контроллер для поиска, указал в ajax url:путь к функции в контроллере, которая получает post переменную из ajax, передаю её в модель, а там уже идут запросы к бд, сначала запрос на поиск имени продукта с содержанием запрашиваемых букв, слов, потом уже беру id продукта, и в другом запросе уже делаю выборку всей нужной инфы к id продукта, объединив несколько таблиц через LEFT JOIN. Использую несколько таблиц чтобы собрать нужную инфу для вывода, а одним запросом не хочу делать, чтобы слишком громозким не был. Вроде получилось. Кода многовато, так что не стал засорять вопрос. Файл search.php не использую теперь, все содержимое разнес, в контроллер и модель. Заработало все.
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    то есть вопрос решен?
     
  7. AlexsaiL

    AlexsaiL Активный пользователь

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    да