2012-05-09 2 views
-3

Хорошо, скажем, у меня есть форум, и у него две таблицы, одна называется сообщений, а другая - пользователей. Когда кто-то посещает сайт, вызывается все сообщения из таблицы сообщений. Если у меня есть временно заблокированный пользователь, и я хотел скрыть все свои сообщения (или если в этом случае несколько пользователей), как я могу называть сообщения на форуме и не показывать свои сообщения? У меня уже есть столбец пользователей таблица активна. Активен только 1 или 0 для запрещенных или нет.PHP - Как скрыть определенные сообщения от вызова?

Thanks

ответ

-2

Сделайте еще одно поле в таблице, которое является флагом. Скажите 1 за шоу и 0 за отсутствие шоу. Установите его, поэтому, когда вы запрещаете кому-либо, он проходит через стол почты и находит все свои сообщения и устанавливает флаг в 0. При показе сообщения используйте select * из таблицы, где show field = 1 в вашем mysql_query, предполагая, что вы используете mysql.

+2

Зачем устанавливать флаг для каждого сообщения, когда вы можете просто ссылаться на 2 таблицы, например: 'post.userID' на' users.active'? Что сказал rlemon в комментариях выше. – JakeParis

3

ваш вопрос очень расплывчато, но при условии, что следующие структуры таблиц:

table users 
    id username password active 
table posts 
    id userid  title  text  date 

Я хотел бы использовать следующий SQL заявление.

SELECT p.id, p.title, p.text, p.date FROM posts AS p INNER JOIN users AS u ON u.id = p.userid AND u.active = 1; 

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

Редактировать: как мне указывалось, INNER JOIN - это правильный JOIN для использования.

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