![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| APro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 328 Регистрация: 5.12.2006 Репутация: 1 Всего: 1 |
Представьте себе такую ситуацию: есть 2 таблицы, к примеру name и lastname, в каждой таблицы только два поля id и text. id первой тиблицы соответствует id'у второй. А как можно получить результат выполнив 1 запрос? или очень компактный запрос, если одним не получится!
(я сделал, но у меня очень немаленький код получися) P.S.: Этот пример на ходу придумал... так что не ругать, типа всё в одну таблицу можно... их должно быть 2! -------------------- Никогда не спорь с дураком, другие могут не заметить между вами разницы. Чем реже открываешь рот, тем меньше слышишь глупостей. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
а смысл в двух в таблицах?
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Сходить и почитать какой-нибудь учебник по реляционным базам...
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| APro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 328 Регистрация: 5.12.2006 Репутация: 1 Всего: 1 |
Там немного дело в другом, но смылс такой: например если я найду фамилию, я получу id, а по нашёдшему иду найду имя, а нужно это собрать в одну кучу, чтобы я нашёл фамилию, и сразу же имя, но это опять же пример только, так как в таблицах совершенно другое!!! -------------------- Никогда не спорь с дураком, другие могут не заметить между вами разницы. Чем реже открываешь рот, тем меньше слышишь глупостей. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
опять не увидел смысла. почему не сделать всё в одной таблице? и это самое плохое, что вы спрашивая ставите одни условия, а результат хотите получить для других если объяснить толком, возможно удастся найти более подходящее решение |
|||
|
||||
| APro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 328 Регистрация: 5.12.2006 Репутация: 1 Всего: 1 |
В общем дело так. У меня скрипт выводит статью, которую берёт из таблицы, и у неё есть ID. Есть ещё таблица с ключевыми словами, и у каждого слова тоже есть ID. Есть смежная таблица, где ID статьи и ID ключевого слова. (то есть к каждой статье по несколько ключевых слов). А я вывожу результат так: Пользователь вбивает слово в поиске и оно ищеться в базе с Ключевыми словами, я получаю ID этого слова, после я ищу в смежной таблице к какой страницы относится этот ID и вывожу уже текст. Проблема в том что получается не очень маленький код, а я пытаюсь его сократить в несколько раз, но не совем нахожу верного способа!!!
-------------------- Никогда не спорь с дураком, другие могут не заметить между вами разницы. Чем реже открываешь рот, тем меньше слышишь глупостей. |
|||
|
||||
| APro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 328 Регистрация: 5.12.2006 Репутация: 1 Всего: 1 |
если я делаю что-то не правильно, предложите что-нибудь другое
-------------------- Никогда не спорь с дураком, другие могут не заметить между вами разницы. Чем реже открываешь рот, тем меньше слышишь глупостей. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
вот, оказывается таблиц даже три.
вопрос такой, как осуществляется поиск? простым сравниванием where `word`='$search' или как-то иначе? типа where word like "%$search%"? |
|||
|
||||
| APro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 328 Регистрация: 5.12.2006 Репутация: 1 Всего: 1 |
второй способ: типа where word like "%$search%"?
-------------------- Никогда не спорь с дураком, другие могут не заметить между вами разницы. Чем реже открываешь рот, тем меньше слышишь глупостей. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
в таком случае, как бы я сделал.
сделал всего одну таблицу, где поиск будет производится прямо в поле article, содержащем полностью статью это если статей не очень много если же поиск существенно напрягает систему, то ввёл бы дополнительное поле keywords, в которое через запятую перечислил ключевые слова, и искал бы уже среди них имхо. однако, если всё же нужны эти три таблицы, то ksnk уже показал, как их объединять. осталось добавить ещё одну таблицу |
|||
|
||||
| APro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 328 Регистрация: 5.12.2006 Репутация: 1 Всего: 1 |
ммм... я об этом как-то думал, но почему то всё же не решился! Мне показалось что так не делается! А можно прямо через запятую искать? (прямо в таблице) или делать explode или ещё что-нить? -------------------- Никогда не спорь с дураком, другие могут не заметить между вами разницы. Чем реже открываешь рот, тем меньше слышишь глупостей. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
APro, Есть еще и FULLTEXT - специальная заточка под текстовый поиск в больших тестовых полях.
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
||||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |