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
Форумы портала PHP.SU :: Версия для печати :: как реализовать поиск по 2 базам?
Форумы портала PHP.SU » PHP » Программирование на PHP » как реализовать поиск по 2 базам?

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

1. splish - 05 Ноября, 2010 - 21:38:01 - перейти к сообщению
Всем привет.
Есть 2 базы (data и datad)
Есть 2 обработчика
Как сделать 1 форму поиска для двух обработчиков?

Например пользователь ставит галочку "искать в статьях" - при нажатии на поиск запрос передаётся отдельному обработчику, а если выбрать другую галочку обработчик будет другим.

CODE (htmlphp):
скопировать код в буфер обмена
  1. <form action="первый обработчик.php" method="post" name="form_s" class="forma">
  2. <p class="search_t">Ваш запрос должен состоять не менее чем из 4-х символов</p>
  3. <p><input name="search" type="text" size="25" maxlength="40" />
  4. <input class="search_b" name="submit_s" type="submit" value="Искать" />
  5. </p>
  6. </form>


Или же как сделать обработчик который будет выдавать информацию из двух баз

Запрос на вывод из одной базы datad:

CODE (htmlphp):
скопировать код в буфер обмена
  1. $result = mysql_query ("SELECT id,title,description,date,author,mini_img,view FROM datad WHERE MATCH(text) AGAINST('$search')",$db);


Спасибо.
2. Garda1 - 05 Ноября, 2010 - 22:22:57 - перейти к сообщению
простой sql-запрос для двух баз данных
CODE (SQL):
скопировать код в буфер обмена
  1.  SELECT id,title,date(и т.п.) FROM DATA,datad WHERE...


если есть одноимённые параметры в базах, то перед параметром ставится название базы например: data.id,datad.id ...
3. splish - 05 Ноября, 2010 - 22:44:12 - перейти к сообщению
Garda1 пишет:
если есть одноимённые параметры в базах, то перед параметром ставится название базы например: data.id,datad.id ...

Недопонимаю пока что

Спасибо что откликнулись.
Есть запрос:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $result = mysql_query ("SELECT id,title,description,date,author,mini_img,view FROM data WHERE MATCH(text) AGAINST('$search')",$db);


Мы выбираем поля id,title,description,date,author,mini_img,view из базы data
Значит что бы дополнительно выбирались поля из другой базы datad (они такие же как и в data) нужно прописать datad.id,datad.title,...?
Но поиск идёт по колонке text
Что то не то, выручайте.
4. DlTA - 05 Ноября, 2010 - 23:44:46 - перейти к сообщению
а Вы не путаете понятие "база" с понятием "таблица"?
чет мне кажется что путаете.
почитайте синтаксис запроса SELECT
(Добавление)
или Использование нескольких таблиц
5. Garda1 - 05 Ноября, 2010 - 23:58:13 - перейти к сообщению
да уж, вместо моих слов база в самом деле имеется ввиду таблица.
и если в вопросе тоже подразумевалось именно это, то вполне возможен такой запрос:
CODE (SQL):
скопировать код в буфер обмена
  1.    1.
  2.       $result = mysql_query ("SELECT data.id,data.title,data.description,data.date,data.author,.data.mini_img,data.view,datad.id,datad.title,datad.description,datad.date,datad.author,datad.mini_img,datad.view FROM data,datad WHERE MATCH(data.text,datad.text) AGAINST('$search')",$db);


хотя если не так много различий между таблицами, то можно их объединить добавив колонку различия

 

Powered by ExBB FM 1.0 RC1