Всем привет...
Я прошу прощения за такие пробелы в написании статей, я очень-очень занят, разрабатываю сайт на заказ, и поэтому времени практически нет...
Сегодняшняя тема - поиск по 2 таблицам базы данных MySQL.
И так, чтобы не тянуть кота за хвост, начинаем сразу, и вам лучше, и мне хорошо... Так вот, сейчас я вам дам все ссылки, и сам SQL-запрос для создания поиска практически на любом сайте.
Что же нужно для создания поиска, как обычно нужен PHP если сайт на нём, нужен SQL-запрос, без него не получиться искать по базе данных MySQL, так как язык запросов SQL создан для данной базы данных, и чуть не забыл сказать что нужна база данных, и таблица в ней(например со статьями).
Теперь мы примерно знаем что нужно для поиска по базе данных.
Теперь приступим к шаблону запроса SQL:
SELECT
<поля>
FROM
<таблица1> t1
INNER JOIN <таблица2> t2
ON <условие связи таблиц>
WHERE
<поле для поиска в таблице1> LIKE '%<фраза>%'
<другие условия>
ORDER BY
t1.id DESC
LIMIT
0,10
Надеюсь вам шаблон понятен, и легко читаем, но у вас может быть очень много вопросов, например зачем я поставил в шаблон команду LIMIT 0, 10, ответ на данный вопрос - чтобы выводить записи по частям, тоесть вывод будет только 10 последних записей, такой толчёк может дать вам понять, что поиск будет очень удобным если в нём будет постраничная навигация. Вопрос №1 - Что такое INNER JOIN, ответ так же прост, это команда для соединения 2 или более таблиц в одну выборку, по ней очень много информации, настолько много, что я даже не стал по ней писать статью, уже и так всё разжовано, есть кстати ещё LEFT JOIN, RIGHT JOIN и ещё много подобных команд. Советую почитать про все, хотя на практике чаще всего нужен INNER JOIN. Вопрос №2 - Зачем нам нужен LIKE, данная команда является поисковой, и её очень многие используют, в том числе и я её использовал создавая поиск по данному сайту. Также существуют уже готовые мощные поисковые движки/библиотеки, например почитайте про Sphinx. Если вы новичок в сайтостроении, и web-программировании, то у вас скорее всего накопилась ещё масса вопросов, которые тут обсуждать безсмысленно, если вам что-то непонятно, напишите это в комментарии ниже, и я обязательно отвечу.