Перейти к содержимому


Пользователь месяца
WGN WGN 1-й за Июль
Очков активности: 850 2 темы, 75 сообщений, 7 баллов репутации
Сайт: worldgamenews.com
ТОП самых активных за этот месяц
  • Фотография TimurR
    #1

    TimurR
    Очков активности: 273 3 темы, 17 сообщений, 7 баллов репутации

  • Фотография WGN
    #2

    WGN (worldgamenews.com)
    Очков активности: 64.5 Вне конкурса за определение пользователя месяца

  • Фотография ShowPrint
    #3

    ShowPrint (ShowPrint.ru)
    Очков активности: 52.5 0 тем, 7 сообщений, 5 баллов репутации

  • Фотография BlackLion
    #4

    BlackLion
    Очков активности: 36 0 тем, 24 сообщения, 1 балл репутации

  • Фотография Vmir
    #5

    Vmir
    Очков активности: 25.5 Вне конкурса за определение пользователя месяца

  • Фотография Napoleon-007
    #6

    Napoleon-007
    Очков активности: 21 0 тем, 14 сообщений, 1 балл репутации

  • Фотография Ixman
    #7

    Ixman (o5cat.ru)
    Очков активности: 21 0 тем, 7 сообщений, 2 балла репутации

  • Фотография alekswebart
    #8

    alekswebart
    Очков активности: 19.5 1 тема, 10 сообщений, 1 балл репутации

  • Фотография r0mZet
    #9

    r0mZet (rz-style.ru)
    Очков активности: 18 2 темы, 6 сообщений, 1 балл репутации

  • Фотография profi
    #10

    profi (1informer.com)
    Очков активности: 12 0 тем, 8 сообщений, 1 балл репутации

  • Показать весь ТОП 10

Kwork.ru - услуги фрилансеров от 500 руб.

Поддержите форум! =)
Апдейты
  • Яндекс тИЦ: 19.11.2017
  • Яндекс выдача: 17.08.2018
Топ 5 участников по репутации


Обращение к разным таблицам из базы

#1 Kuchuluk

Kuchuluk
  • Пользователь
  • 329 сообщений
  • Репутация: 5
0

Отправлено 29 January 2012 - 13:23

Если я хочу разместить на небольшом участке веб-страницы тексты из разных таблиц БД, то для этого нужно каждый раз новый запрос к БД делать? Или можно как-то по другому? Если не затруднит напишите какой-нибудь код для примера.

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Привязка по ID
  2. Как сделать вывод из БД в таблицу в три столбца и три ряда?
  3. Обработка PHP-кода - полученного из базы данных
  4. Заметка в базе, относящаяся к разным категориям
  5. Одна база данных sql для нескольких сайтов.

#2 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 29 January 2012 - 16:30

Да, в большинстве случаев 1 таблица = 1 запрос. В зависимости от задачи можно объединять данные из различных таблиц в одном запросе, но пока что не стоит забивать себе этим голову... лучше доведите до автоматизма работу с простыми вещами.
  • 0


#3 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 329 сообщений
  • Репутация: 5

Отправлено 29 January 2012 - 18:46

SELECT * FROM table1,table2 WHERE table1.name='vasya' AND table2.firstname='pupkin';
таким способом пристыковки можно?
  • 0

#4 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 29 January 2012 - 19:32

А попробовать? В том же phpMyAdmin есть вкладка SQL, где можно ввести любой запрос и получить результат. Так делать можно, но именно так делать - неправильно. Объединение таблиц правильно производить по внешнему ключу, получая при этом результирующую таблицу со связанными данными, а не по абсолютно разным значениям ("vasya" и "pupkin").
  • 0


#5 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 329 сообщений
  • Репутация: 5

Отправлено 29 January 2012 - 19:48

Объединение таблиц правильно производить по внешнему ключу, получая при этом результирующую таблицу со связанными данными,

и эту результирующую таблицу тоже заносить в БД?
  • 0

#6 yury

yury
  • Пользователь
  • 642 сообщений
  • Репутация: 188

Отправлено 29 January 2012 - 21:07

Kuchuluk,
зачем результирующую таблицу заносить в БД? Просто будете использовать результат объединения в своих запросах.
Почитайте, должно помочь: http://ru.wikipedia....wiki/Join_(SQL)


  • 0

#7 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 29 January 2012 - 22:04

и эту результирующую таблицу тоже заносить в БД?

Под результирующей таблицей имеется в виду результат, получаемый от сервера БД на Ваш запрос... этот результат ведь также представлен в табличном виде. Ну а заносить его в БД зачем? Вы ведь, получая комментарии к статье для вывода их на сайт, не вносите их в БД...
  • 0


#8 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 329 сообщений
  • Репутация: 5

Отправлено 29 January 2012 - 22:22

yury, matroskin8, спасибо, я понял. результирующюю таблицу нужно получать, чтобы впоследствии с ней работать. Но я имел в виду не совсем это ;) Я имел в виду вот что: например на страницу нужно вывести автора книги, ее название, краткое описание и жанр, к которому она относится. Автор находится в одной таблице, название и краткое описание в другой и жанр в третьей. И вот чтобы их вывести рядом друг с другом, как это реализовывается? Делается три запроса к базе данных и потом они через оператор printf выводятся что-ли?
  • 0

#9 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 30 January 2012 - 00:24

Пока Вы только учитесь - можно сделать и 3 запроса. А вообще это делается одним запросом, объединяющим записи нескольких таблиц. Здесь главное правильно спроектировать БД, чтобы прослеживались связи объединяемых таблиц. Вот, к примеру, 2 таблицы из Вашего вопроса:
таблица books:
id | name | genre
1 | Книга 1 | 1
2 | Книга 2 | 2
3 | Книга 3 | 1
4 | Книга 4 | 1
Здесь содержится название книги и ее жанр. Но жанр представлен числовым типом. Данным полем эта таблица ссылается на так называемый справочник, в котором содержится список жанров. Эта связь может быть использована для создания внешнего ключа с целью поддержания справочной целостности.
Вторая таблица genre:
id | genre
1 | Детектив
2 | Приключения
Теперь объединяем обе таблицы. Способ 1:
SELECT books.id, books.name, genre.genre FROM books, genre WHERE books.genre = genre.id

Результат:
id | name | genre
1 | Книга 1 | Детектив
2 | Книга 2 | Приключения
3 | Книга 3 | Детектив
4 | Книга 4 | Детектив
Способ 2:
SELECT * FROM books JOIN genre ON books.genre = genre.id

Результат:
id | name | genre | id | genre
1 | Книга 1 | 1 | 1 | Детектив
2 | Книга 2 | 2 | 2 | Приключения
3 | Книга 3 | 1 | 1 | Детектив
4 | Книга 4 | 1 | 1 | Детектив
В общем, где-то так... мой Вам совет - прежде, чем углубляться в "дебри" языка SQL, все же освойте простейшее, а уж затем почитайте какую-нибудь книжку по языку запросов... например, могу порекомендовать Мартина Грабера.
  • 0


#10 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 329 сообщений
  • Репутация: 5

Отправлено 30 January 2012 - 04:41

matroskin8, спасибо, попробую ;)

мой Вам совет - прежде, чем углубляться в "дебри" языка SQL, все же освойте простейшее, а уж затем почитайте какую-нибудь книжку по языку запросов... например, могу порекомендовать Мартина Грабера.

просто мне это уже сейчас нужно реализовывать.
  • 0

robot

robot
  • Пользователь PRO
  • 2652 сообщений
  • Репутация: 85


Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru