Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск по нескольким таблицам с разной структурой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
alsio
Отправлено: 31 Августа, 2013 - 18:47:59
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


Требуется осуществить поиск по нескольким таблицам с разной структурой. Например, есть 3 таблицы:

table1: id, name, adress, telefon
table2: id, parent_id, date, age
table3: id, parent_id, komment

Записи объединяются по принципу: id из table1 = parent_id из table2...

Когда была только table1, поиск был сделан так:

PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM table WHERE id LIKE '%$search_query%' OR name LIKE '%$search_query%' OR adress LIKE '%$search_query%' OR telefon LIKE '%$search_query%' ORDER BY id DESC";
  2. // Выполняем запрос.
  3. $res = mysql_query($sql) or die(mysql_error());


Вопрос, как осуществить поиск по всем 3 таблицам?

(Отредактировано автором: 31 Августа, 2013 - 18:49:29)

 
 Top
LIME
Отправлено: 31 Августа, 2013 - 18:55:35
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




 
 Top
alsio
Отправлено: 04 Сентября, 2013 - 19:44:45
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


Еще будут варианты?
 
 Top
kuller
Отправлено: 05 Сентября, 2013 - 10:08:08
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




alsio пишет:
Еще будут варианты?


UNION ....

(Отредактировано автором: 05 Сентября, 2013 - 10:09:54)

 
 Top
alsio
Отправлено: 21 Сентября, 2013 - 18:22:08
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


Сделал так:

PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.parent_id WHERE table.id LIKE '%$search_query%' OR ... и т.д.


Теперь вопрос, как в результатах поиска вывести id из table1 только один раз? А то получается, что если, допустим, id=5 из table1 соответствует несколько строк в table2 с parent_id=5, то и выводятся эти несколько строк. Но id то один и тот же (id=5).

Если непонятно, что спросил, могу привести пример.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB