PHP: поиск в одной таблице и в другой

0

Я выполняю функцию автозапуска, когда пользователь пишет что-то в поле, он сохраняет его в:

$queryString = $db->real_escape_string($_POST['queryString']);

Я хочу, чтобы он автоматически отключился после друзей пользователей. Друзья пользователя в users_friends, но только идентификатор друга. Теперь их full_name находится в таблице "пользователи". И я хочу, когда вы будете искать его в интересах пользователя для полного_имя +, проверьте, есть ли у него друзья с пользователем.

Как вы понимаете, я не ожидаю, что все мои пользователи узнают друг друга id так, чтобы писать, например, "52" "233", но искали их полное имя s.

UPDATE:

Я знаю, пытался это сделать:           Запрос $query = $db- > ( "SELECT uf.bID           ОТ пользователей друзей, users_friends uf           WHERE uf.uID = '1' AND uf.type = 'friend' AND friends.full_name LIKE '$ queryString%' LIMIT 10;"           );

Он выбирает идентификатор bID из друзей пользователей. Идентификатор пользователя равен 1 и является другом.

Теперь я начинаю видеть некоторые результаты, о которых я думаю. Когда я пишу полное_имя, с которым я подружился, я получаю идентификатор пользователя (идентификатор, который хранится в bID). Теперь мне просто нужно захватить полное_имя в "users", где id = bID..

table: users
id | full_name

table: users_friends
id | uID | bID

Итак, заключение всего этого (попытка сделать лучшее резюме, чтобы вы поняли лучше:)

Когда вы вводите, например, Jack в поле поиска, тогда $queryString теперь является "гнездом". Затем он берет "Джек" (full_name в пользователях), захватывая свой идентификатор (id в пользователях), если он существует там, а затем сопоставляет его с идентификатором bID (в users_friends), где uID - USER; ($ user - текущий пользователь, зарегистрированный в id.)

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

  • 0
    Какую базу данных вы используете? MySQL?
  • 0
    да mysql и кодирование с php
Теги:

3 ответа

1
Лучший ответ

Итак, как я понял, у вас есть текущий идентификатор пользователя в $USER и его строке запроса в $queryString, и вы хотите, чтобы имена пользователей были основаны на $queryString, я прав

Итак, предполагая, что схема базы данных находится так, как вы положили:

table: users
id | full_name

table: users_friends
id | uID | bID

Посмотрите, работает ли этот запрос для вас, а затем:

SELECT users.full_name 
FROM users INNER JOIN users_friends ON users.id=users_friends.uID
WHERE bID=$USER AND users.full_name LIKE '$queryString%'
LIMIT 10;

Где $USER и $queryString являются вашими переменными.

  • 0
    Ты молодец, спасибо миллион!
0

Я не понял ваш вопрос Но вы можете использовать этот запрос:

mysql_query("SELECT * FROM table_one, table_two WHERE table_one.id = table_two.id");
0

Вы хотите сразу прочитать данные из многих таблиц?

SELECT table1.id, table2.name FROM table1, table2 WHERE...

Мой английский не очень хорошо понимает все: D

Ещё вопросы

Сообщество Overcoder
Наверх
Меню