2015-02-05 2 views
-4

Я делаю систему бронирования с использованием базы данных php и mysql. В системе есть несколько пользователей, которые могут входить в систему и делать заказы, поэтому я хочу знать способ выбора записей на основе сеансов пользователей. На данный момент он выбирает только все записи бронирования, что означает, что пользователи имеют доступ ко всем заказам.Как получить записи из mysql у разных пользователей

У меня есть Заказ столика, который бронирование записи и таблицы пользователей с пользователей credentials.Is есть также способ для выбора записей из обеих таблиц

+0

Это базовый MySQL. Google "mysql присоединиться к учебнику". –

+0

Можете ли вы разместить структуру таблиц? В основном вам нужно поле, чтобы связать бронирование с пользователем (что-то вроде «user_id») в таблице бронирования –

+0

У меня есть 2 стола, которые являются заказами и пользователями. В таблице заказов указаны следующие поля: бронирование, дата, время, тип, транспортное средство.В таблице пользователей есть: ID, имя пользователя, пароль и адрес электронной почты – r93

ответ

0

Вам нужно создать уникальный идентификатор для каждого пользователя в базе данных. Используйте Primary Key и установите его в Auto Increment.

После проверки действительных учетных данных при входе в систему, возьмите их идентификатор из базы данных и сохраните его в переменной сеанса.

Создайте таблицу заказов с помощью столбца идентификатора пользователя. Назначьте идентификатор пользователя для бронирования. Когда вы хотите запросить их бронирование, укажите их идентификатор пользователя в запросе.

+0

Я в настоящее время храню свое имя пользователя в переменной сеанса – r93

0

В таблице users вы должны иметь уникальный идентификатор.

В таблице заказов у ​​вас есть идентификатор пользователя поля. Когда вы добавляете бронирование, вы сохраняете идентификатор пользователя в этом поле.

Затем, когда вы хотите получить заказы, вы выбираете записи, соответствующие конкретному идентификатору пользователя.

Наличие поля для идентификатора пользователя в таблице бронирования называется foreign key. Это основа для того, что вы делаете с sql. Настройка этого способа позволяет вам делать то, что называется join. Здесь вы получаете все данные из двух или более таблиц, при этом строки объединяются в соответствии с их ключевыми значениями. Так что в вашем случае вы могли бы сделать что-то вроде этого:

SELECT * FROM users,bookings WHERE bookings.id=users.id; 

Это даст вам обратно записи, у которых все данные бронирования, и все пользовательские данные для пользователя, который сделал этот заказ. Вы также можете сделать:

SELECT * FROM bookings where users.id=3; 

Который даст вам все данные бронирования для пользователя с идентификатором 3.

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

SELECT * FROM users,bookings WHERE users.surname="Doe" AND bookings.id=users.id; 

Вы можете использовать его в обратном направлении тоже - например, если вы хотите получить информацию о пользователе для всех, кто имеет номер на определенную дату, вы могли бы сделать что-то вроде этого:

SELECT * FROM users WHERE bookings.date='03/03/2015' AND users.id=bookings.id; 

Как вы можете видеть, добавив, что идентификатор пользователя в таблице заказов открывает множество возможностей, поскольку он связывает ваши данные вместе, что позволяет вам получать данные как одну запись, даже если она разделена на несколько таблиц.

+0

У меня уже есть идентификатор для таблиц пользователей, мне нужно будет использовать одно и то же поле в моей книге? Я могу получить информацию о пользователе для всех пользователей на основе пользовательских сеансов. Я пытаюсь придерживаться той же концепции для получения заказов от разных пользователей. – r93

+0

Да точно - вы помещаете только идентификатор от пользователей в таблице заказов, и это позволяет вам пользователь/пользовательские данные, как если бы они находились в одной таблице , Я добавил некоторые подробности об этом в свой ответ выше - надеюсь, что это поможет. –

+0

Я хочу выбрать идентификатор, дату и время из таблицы бронирования, а также имя пользователя и идентификатор от пользователей. Я хочу, чтобы имя пользователя было сеансом пользователей, и это должно отображать заказы, созданные разными пользователями. Как я могу написать это как оператор sql, чтобы выбрать их? – r93

Смежные вопросы