我有一个脚本可以打印出数据库中的消息。
每条消息都由其他用户编写。
我希望只有与消息创建者成为朋友的用户才能查看消息。
我的脚本是:
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());
}
答案 0 :(得分:3)
您必须在查询中加入消息和朋友表,并且一次性使用两者。
答案 1 :(得分:1)
设置continue
时的标记,如果设置了此标记 - >不要输出信息。
答案 2 :(得分:1)
试试这个跳过你的第一个循环:
continue 2;
此2
参数控制哪些嵌套循环将继续。