Как взаимодействовать с таблицами в mysql с помощью php.

#php #mysql

#php #mysql

Вопрос:

В моей базе данных есть две таблицы. Я использую первый для выполнения процесса входа / регистрации, где я сохраняю информацию о пользователе (имя, адрес электронной почты, пароль). Итак, я создал вторую таблицу, в которую зарегистрированные пользователи могут добавлять изображение и название продукта, но я обнаружил, что 2 таблицы не могут взаимодействовать, и у них нет возможности использовать вторую таблицу.

Пожалуйста, как я могу это сделать?

Если вам нужна дополнительная информация, дайте мне знать.

Комментарии:

1. означает, что вам нужно к join ним или что-то еще…..

2. Прочитайте о соединениях MySQL.

3. Достойное место для начала: tutorialspoint.com/mysql/mysql-using-joins.htm

4. были ли у вас какие-либо отношения между столбцами идентификаторов обеих таблиц, например, или столбцами идентификаторов, используемых в обеих таблицах. вы можете обрабатывать с помощью mysql JOINS, FULL OUTER JOIN и т. Д…

5. @Adetona77. Я предоставил четкие объяснения по поводу внешнего ключа и таблиц объединения. Поделитесь мыслями о своем представлении. если вы столкнетесь с какими-либо препятствиями, дайте мне знать.

Ответ №1:

Вы можете сделать это с помощью foreign key relationships .

Ссылка: http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html

  • Сначала вам нужно создать таблицу с реляционным идентификатором (внешним ключом) из первой таблицы, чтобы вы могли извлекать данные.
  • После того, как вы предоставите внешний ключ запросам, где вы можете использовать доступные соединения, и вы сможете получить данные.

Примечание: Если у вас нет реляционного идентификатора другой таблицы, вам не рекомендуется использовать запрос JOIN, поскольку вы должны передать реляционный идентификатор (внешний КЛЮЧ) в join stmt.

Инструкция SQL для создания идентификатора внешнего ключа из самой первой таблицы.

 CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
 

Следующий SQL создает ВНЕШНИЙ КЛЮЧ в столбце «P_Id» при создании таблицы «Заказы»

После создания внешнего ключа для обеих таблиц, которые вы создаете, вы можете выполнить приведенный здесь код, а затем объединить обе таблицы.

http://dev.mysql.com/doc/refman/5.7/en/join.html

Вы должны создать структуру таблицы следующим образом:

Таблица информации о пользователе:

  ------------------------------------------ 
| id   |   name   |   Email   |  Password  |    
 ------------------------------------------ 
 

И таблица продуктов, подобная этой

  ------------------------------------------ 
| id   |   user_id   |   product_name      |    
 ------------------------------------------ 
 
  • Здесь user_id будет действовать как внешний для user таблицы при доступе к таблице продуктов.

Следовательно, код будет следующим.

Для извлечения всех данных из двух таблиц:

 $query = "SELECT * FROM user JOIN product ON user.id = product.user_id ORDER BY user.id DESC"
 

Для извлечения данных на основе конкретного пользователя.

 $query = "SELECT * FROM user JOIN product ON user.id = product.user_id WHERE user.id ='".$id."'"
 
  • Где $id идентификатор текущего пользователя.

Надеюсь, что мои объяснения будут понятными, и это вам очень поможет.

Счастливого кодирования 🙂

Комментарии:

1. Нареш, мои вопросы.

2. 1. Собираюсь ли я предоставлять внешние ключи для обеих таблиц.

3. Используйте идентификатор пользователя в обеих таблицах в качестве внешних ключей. Это поможет создать отношения типа «один ко многим» и для объединения тоже. Без них вы никогда не узнаете, кто добавляет изображения для продуктов.

4. В таблице «Persons» я собираюсь создать еще один внешний ключ?

5. Эй, Нареш, как мне заставить пользователя вставить в «product_name»?