【发布时间】:2012-03-13 17:17:44
【问题描述】:
我有一个脚本可以从数据库中打印出消息。
每条消息都是由不同的用户编写的。
我希望只有与消息创建者成为朋友的用户才能查看消息。
我的脚本是:
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());
}
【问题讨论】:
-
我建议你已经用你的查询来解决这个问题,只返回朋友的更新,而不是所有需要在 PHP 中过滤的更新。
-
让我明白这一点。你需要打破第二个for循环吗?如果您需要
break退出它,请使用关键字break。我不是要时髦,我可能会错过阅读它,您能否更好地说明问题! -
对不起,迈克尔,没有这样爆发,我需要“跳过”当前循环并继续其余的 foreach 循环。 hakre,我将在一分钟内添加我的查询代码,因为我不确定如何通过查询来完成它。我试过了。