Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск по двум таблицам с разной структурой
 
 автор: daybyday   (20.07.2011 в 10:15)   письмо автору
 
 

Всем привет, что-то не могу разобраться.

Есть поля поиска, допустим: имя, фамилия, должность (выпадающий список [берем id]). Т.е. на странице три поля, куда люди вводят информацию и жмут "Искать".

Есть две таблицы.
Пользователи: id | name | family

и

Места работы: id | iduser | doljnost (в doljnost хранится id должности из третьей таблицы)

(также есть таблица со списком должностей, вида - id | name, именно из неё в поиске формируется выпадающий список, но в запрос к БД идет уже id должности, который хранится в таблице "Места работы").

Смысл поиска таков: вводят имя или фамилию (могут только начало фамилии или имени, используется like), и уже на этом этапе можно отправлять запрос. В ответ нужно получить сформированный результат, который будет включать: Имя Фамилия + столбиком места работы найденного пользователя (берутся из таблицы "Места работы"), и так для каждого найденного по запросу пользователя. В тот же момент могут выбрать только должность, и также нужно вывести всех пользователей, которые подходят под должность. Могут заполнить и все поля - здесь вообще не понятно, т.к. вводят имя и фамилию, их id какбы не известны, но среди этих id нужно найти подходящие должности для пользователя. Вообщем нужен поиск, который будет как-то связывать это в таком режиме.

Буду рад любым ссылкам и примерам, мыслям и наставлениям.
Заранее спасибо.

  Ответить  
 
 автор: cheops   (20.07.2011 в 12:27)   письмо автору
 
   для: daybyday   (20.07.2011 в 10:15)
 

Для этого обычно используют объединение таблиц, можно начать отталкиваться от следующего запроса
SELECT
  user.name AS name,
  user.family AS family,
  doljnost.name AS name
FROM
  user
LEFT JOIN
  job
ON
  user.id = job.iduser
LEFT JOIN
  doljnost
ON
  job.doljnost = doljnost.id
WHERE
  user.name = 'Имя' AND
  user.family = 'Фамилия' AND
  doljnost.id = 4

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования