За последние 24 часа нас посетили 22507 программистов и 1152 робота. Сейчас ищут 656 программистов ...

PHP: MySQL поиск

Тема в разделе "PHP для новичков", создана пользователем RomanForoschuk, 14 май 2016.

  1. RomanForoschuk

    RomanForoschuk Новичок

    С нами с:
    14 май 2016
    Сообщения:
    9
    Симпатии:
    0
    Здравствуйте! Итак, есть база данных (Изображение 1), по которой собственно и нужно организовать поиск из столбца "keywords". Данные в нем записаны через запятую. Пример: "Город, люди, транспорт, час пик, светофор". В чем проблема? Проблема скорее всего в моем кардинальном незнании PHP и MySQL, нужно найти хотя бы одно слово с рядя запрошенных пользователем. Нужен код для этой задачи.

    [​IMG]
    Изображение 1. Структура
    Заранее благодарю за помощь.
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Смотри LIKE для MySQL
     
  3. RomanForoschuk

    RomanForoschuk Новичок

    С нами с:
    14 май 2016
    Сообщения:
    9
    Симпатии:
    0
    Оно ищет только точное сочетание слов, то есть при ошибке не будет нужного результата.
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
  5. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Ещё можешь почитать про mysql full text search он может оказаться эффективнее.
     
  6. RomanForoschuk

    RomanForoschuk Новичок

    С нами с:
    14 май 2016
    Сообщения:
    9
    Симпатии:
    0
    Спасибо! Завтра на свежую голову прочту...
     
  7. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Не знаю, может это и неправильно, но я для удобности работы превращаю строку типа "тест1, текст2, ... текстn" в массив, и тогда уже произвожу поиск по массиву.
    --- Добавлено ---
    $string = "text1,text2,text3";
    $array = @split (",", $string);

    Проблема только в том что split() уже устарела, и кидается варнингами. Но я не заморачиваюсь, собака в помощь)))
     
  8. RomanForoschuk

    RomanForoschuk Новичок

    С нами с:
    14 май 2016
    Сообщения:
    9
    Симпатии:
    0
    Надо будет попробовать. Спасибо!
     
  9. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Но, что-то, у меня такое подозрение закрадывается что при большом количестве записей этот скрипт будет пожирать лишнюю память, так что, всё таки, советую найти нормальный вариант)
     
  10. Scogzhe

    Scogzhe Зэк
    [ БАН ]

    С нами с:
    4 фев 2015
    Сообщения:
    109
    Симпатии:
    0
    MySql

    Like %...%
     
  11. RomanForoschuk

    RomanForoschuk Новичок

    С нами с:
    14 май 2016
    Сообщения:
    9
    Симпатии:
    0
    Решил использовать REGEXP, но все равно спасибо!
     
  12. Scogzhe

    Scogzhe Зэк
    [ БАН ]

    С нами с:
    4 фев 2015
    Сообщения:
    109
    Симпатии:
    0
    :) Если че пиши
     
  13. RomanForoschuk

    RomanForoschuk Новичок

    С нами с:
    14 май 2016
    Сообщения:
    9
    Симпатии:
    0
    Хорошо)
     
  14. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    А если миллион записей ?
    +1
    Или через sphinx, к примеру
     
    mahmuzar нравится это.