2015-02-10 6 views
0

Мне нужно сделать запрос, используя PHP из двух таблиц. В первых таблицах есть информация о пользователе, такая как (имя пользователя, возраст, страна).Выбор пользователей Мне нравится использовать PHP

В моем приложении пользователям могут нравиться другие пользователи, поэтому я делаю вторую таблицу с двумя полями (myName, userName) userName будет тем же значением, что и в первой таблице.

Мне нужно выбрать всех пользователей, которые мне понравились.

Первая таблица:

userName | age | country 
-------------------------------------- 
name1  | 20 | USA 
name2  | 21 | UK 
name3  | 23 | UAE 
name4  | 33 | India 
name5  | 19 | Canada 
name6  | 25 | USA 

Вторая таблица:

userName  myName 
name1 |  ahmed 
name2 |  Mic 
name3 |  ahmed 
name4 |  Danil 
name5 |  ahmed 
name5 |  Mic 
name6 |  ahmed 

Из приведенной выше таблицы можно увидеть, что Ахмед любит 3 имена пользователей. Мне нужно использовать PHP для выбора трех пользователей в зависимости от POST.

Спасибо, и я надеюсь, что вопрос ясен

+0

Эти таблицы базы данных? Может, MySQL? – j08691

ответ

0

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

SELECT u.* FROM users u 
INNER JOIN users_likes ul ON ul.userName = u.userName 
WHERE ul.myName = 'ahmed' 
0

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

Почему? Что, если пользователь, то есть Джон, любит Брэндон и Джейкоб, но Брэндон решает, что его имя должно быть теперь Брандо (потому что у него странные псевдонимы), пользователь Brandon будет удален из всех будущих запросов, потому что его имя изменилось. ИЛИ Что делать, если в базе данных есть два «Брэндона Смита»? Вы не хотите любить и то, и другое.

Способ, которым мы обходим это, используя ассоциативные таблицы и объединения. Вот почему первичный ключ («id») так важен в базах данных. Таким образом, пока идентификатор пользователя не изменяется (что не должно произойти, если пользователь не удален), мы можем сохранить отношения.

Table 'user' 
id | first_name | last_name | email | 
1  | John  | Doe  | [email protected] | 
2  | Brandon  | Smith  | [email protected] | 
3  | Jacob  | Smidt  | [email protected] | 

Table 'user_like' 
id | user_id  | liked_user_id 
1  | 1   | 2 
2  | 1   | 3 

Таким образом, вы бы выбрать пользователя и присоединиться к user_like где user_id = user.id, и было бы вернуть все user_ids понравилось.

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

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