Вырваться из цикла foreach php - PullRequest
1 голос
/ 13 марта 2012

У меня есть скрипт, который выводит сообщения из базы данных.

Каждое сообщение написано другим пользователем.

Мне бы хотелось, чтобы только пользователи, которые дружат сСоздатель сообщения, сможет просмотреть сообщение.

У меня есть скрипт:

foreach($updatesarray as $data)
 {
 $qu=mysql_query("SELECT frid FROM friends WHERE usid='$uid'")or die(mysql_error());
 $dataq=array();
 $qurow=mysql_fetch_array($qu);
 $dataq[]=$qurow['frid'];
foreach($dataq as $value){
  if($value!=$data['uid_fk'])
    continue;
}

/ Continues the output of the message

Первый foreach берет данные из массива запросов mysql.Затем в рамках этого foreach я выполняю еще один запрос mysql, чтобы определить список друзей для текущего пользователя, вошедшего в систему.Я помещаю результаты в массив и создаю новый foreach.Если какой-либо из циклов будет найден НЕ как пользователь, он будет продолжаться ... Но он не продолжается так, как мне бы хотелось.Мне нужно пропустить весь вывод сообщения, вместо продолжения второго foreach.

Переменная $ data ['uid_fk'] является создателем сообщения, хранящимся в базе данных.

База данныхзапрос:

if($viewtype=="friends"){
         $viewquery="M.uid_fk=U.uid";
         $query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created,       U.username, U.firstname, U.middlename, U.surname, M.uploads FROM messages M, users U  WHERE     $viewquery $morequery order by M.msg_id desc limit " .$this->perpage) or     die(mysql_error());

        }

Ответы [ 3 ]

3 голосов
/ 13 марта 2012

Вы должны объединить сообщения и таблицы друзей в запросе, и за один раз вы получите оба.

1 голос
/ 13 марта 2012

Попробуйте пропустить первый цикл:

continue 2;

Этот параметр 2 определяет, какой из вложенных циклов будет продолжаться.

1 голос
/ 13 марта 2012

Установите флаг, когда вы continue, если этот флаг установлен -> не выводить сообщение.

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