получить то же свойство из MySQL с PHP

0

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

например, пользователь1 загрузил изображение, а user2 также загрузил изображение......., чем как я могу сопоставить user1 с user2, и запрос должен быть таким, как это........

выберите * от пользователей, где id = 'user1id' или id = 'user2id' и imguploaded = '1'

этот запрос правильный или нет, но он не работает для меня..........!! Я хочу, чтобы рабочий запрос был таким же, как и выше, выберите * от пользователей, где imguploaded = 1

Теги:

4 ответа

0

Как насчет присоединения?

query = "SELECT * FROM users AS first JOIN users AS second ON first.imguploaded = second.imguploaded WHERE first.userid = $user1 И second.userid = $user2 "

Этот запрос займет двух пользователей, и если они имеют одинаковый атрибут (imguploaded одинаковый для обоих), верните обе строки, вы можете выбрать то, что вам нужно. Вы можете добавить дополнительные атрибуты в предложение ON, например: ON first.imguploaded = second.imguploaded OR (first.imgdloaded = second.imgdloaded AND first.somethingelseuploaded = second.somethingelseuploaded).

Таким образом (с предложением ON инструкции mysql) вы можете объединить все атрибуты в AND/ON, но вы должны поместить скобки - (и) - в нужные места. Конечно, если вы их не ставите, сервер MySQL будет просто читать их поочередно.

Это то, что вам нужно?

0

Зачем вам такая вещь?

В любом случае... создайте таблицу действий, в которой у вас есть структура типа id, action, desc Затем создайте таблицу user_action, например id, user_id, action_id. Затем принесите результаты.

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

0

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

select * from users where (id='user1id' or id='user2id') and imguploaded='1'

если вы не используете mysql, предположите приоритет по умолчанию и интерпретируете запрос следующим образом:

select * from users where id='user1id' or (id='user2id' and imguploaded='1')

который не даст желаемого результата.

Чтобы проверить, действительно ли у обоих пользователей есть загруженная фотография, вы можете сделать это:

select COUNT(*) as count from users where (id='user1id' or id='user2id') and imguploaded='1'

а затем проверьте, если count == 2

  • 0
    Это будет работать, если у ЛЮБОГО пользователя есть загруженное изображение. Я думаю, что ОП запрашивает запрос, который сообщит ему, загружены ли ОБА пользователи.
0
select * from users where (id='user1id' and imguploaded='1') and (id='user2id'and imguploaded='1') 
  • 0
    спасибо, босс, я понял
  • 0
    Вам это помогло?

Ещё вопросы

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