打破foreach循环php

时间:2012-03-13 17:17:45

标签: php mysql foreach

我有一个脚本可以打印出数据库中的消息。

每条消息都由其他用户编写。

我希望只有与消息创建者成为朋友的用户才能查看消息。

我的脚本是:

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。如果找到 NOT 的任何循环成为用户,它将继续...但它不会继续我想要的方式。我需要它跳过消息的整个输出,而不是继续第二个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 个答案:

答案 0 :(得分:3)

您必须在查询中加入消息和朋友表,并且一次性使用两者。

答案 1 :(得分:1)

设置continue时的标记,如果设置了此标记 - >不要输出信息。

答案 2 :(得分:1)

试试这个跳过你的第一个循环:

continue 2;

2参数控制哪些嵌套循环将继续。