За последние 24 часа нас посетили 22694 программиста и 1721 робот. Сейчас ищут 760 программистов ...

Как сделать связь между таблица в БД?

Тема в разделе "PHP для новичков", создана пользователем kiril901, 15 окт 2017.

  1. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    Здравствуйте! У меня есть регистрация на сайте PHP и MYSQL, я создал таблицу в БД users, регистрация проходит отлично, у меня вопрос: Как сделать привязку к логину той инфы, который клиент будет сам вводит в своем аккаунте в базу данных? Скорей всего надо сделать связь между таблицами, а как это сделать?
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Создаешь поле внешнего ключа в таблице и всё.
    Например, у тебя блог и на нем есть комментарии.
    Есть таблица со статьями с первичным ключом - id статьи.
    Ты в таблице с комментариями создаешь внешний ключ - id статьи.
    При выводе статьи выводишь все комментарии у которых внешний ключ (id статьи) такой же, как первичный ключ этой статьи.
    --- Добавлено ---
    точно так же с пользователями.
    Весь контент, принадлежащий пользователям имеет поле внешнего ключа - id пользователя.
     
  3. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    Если я правильно понимаю=>
    Есть таблица `users` в которой есть поле `id` пользователя, тогда в таблице `info` нужно сделать поле `user_id` и например, если нужно выбрать инфу о пользователе то, сделать так:
    Код (Text):
    1. SELECT * FROM `users` AS u JOIN `info` AS i WHERE u.id = i.user_id
     
    #3 виталий032, 15 окт 2017
    Последнее редактирование: 15 окт 2017
  4. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0

    а в БД не надо связь делать ? подробнее напишите что и куда написать?
    --- Добавлено ---

    можно подробнее как сделать связь?
     
  5. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    Не обязательно. По крайней мере у меня работает так, как я вам написал
     
  6. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0

    я не сильно разбираюсь куда это строку написать вместо insert в обработчик?
    --- Добавлено ---
    или на вывод?
     
  7. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    Туда, куда ты вводишь/пишешь запросы типа:
    Код (Text):
    1. SELECT * FROM `название таблицы`
    Код (Text):
    1. INSERT INTO `название таблицы` (`название колонки`)  VALUES (`значение`)
     
  8. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    эту строку вставил в $sql_select = "SELECT * FROM `catalog` AS u JOIN `users` AS i WHERE u.id_cat = i.id"; не работает
    --- Добавлено ---
    а insert я не трогал, помогите пожалуйста разобраться
     
  9. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    В таблице catalog есть поле `id_cat`? В таблице users есть поле id? Есть совпадающие значения? Т.е. например id_cat в `catalog` равен 3 и id в `users` равен 3.
     
  10. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    нет
     
  11. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    связь создается, когда ты прописываешь внешний ключ к первичному ключу другой (иногда этой же) таблицы.
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    LEFT JOIN и связи не нужны
     
  13. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    а как мне сделать? подскажите пожалуйста кодом?
    --- Добавлено ---
    я очень прошу помогите
     
  14. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    каким кодом - sql это не чит-код
     
  15. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    ну да куда и что мне написать? я запутался
    --- Добавлено ---
    @виталий032, я очень прошу помогите
     
  16. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    Если вы про то, что я предлагал, то:
    В одной таблице имеется поле, которое имеет такое же значение в другой таблице. И такие совпадения ищутся с помощью запроса, который я написал выше.

    Код (Text):
    1. SELECT * FROM `catalog` AS u JOIN `users` AS i WHERE u.id_cat = i.id
    означает:
    выбрать все столбцы из таблиц `catalog` и `users` где имеются совпадения значений столбца id из таблицы `users` и столбца id_cat из таблицы `catalog`.
     
  17. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0

    а в моему случае
     
  18. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    В вашем случае какие таблицы? Какие поля нужно связать?
     
  19. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0

    ну к примеру чтобы под логином kiril901 в таблице users был 4 поля из таблицы catalog
     
  20. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    По каким столбцам связать?
     
  21. kiril901

    kiril901 Активный пользователь

    С нами с:
    23 дек 2015
    Сообщения:
    124
    Симпатии:
    0
    ну login с таблице users и чтобы то что ввел клиент отобрадоалось только у него: id, sait, tar, present
     
  22. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток