получить то же свойство из MySQL с PHP - PullRequest
0 голосов
/ 02 декабря 2009

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

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

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

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

Ответы [ 4 ]

0 голосов
/ 12 декабря 2009

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

query = "SELECT * FROM users AS first Присоединяйтесь к пользователям AS second ON first.imguploaded = second.imguploaded ГДЕ first.userid = $ user1 И second.userid = $ user2 "

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

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

Это то, что тебе нужно?

0 голосов
/ 02 декабря 2009

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

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

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

0 голосов
/ 02 декабря 2009
select * from users where (id='user1id' and imguploaded='1') and (id='user2id'and imguploaded='1') 
0 голосов
/ 02 декабря 2009

попробуйте экпсультировать ваше место в скобках, так как приоритет ...

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'

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...