私はデータベース内からメッセージを出力するスクリプトを持っています。foreachループPHPの中断
各メッセージは別のユーザーによって書き込まれます。私が望む何
は、メッセージを表示することができ、メッセージ作成者と友達であるユーザーのみです。
私が持っているスクリプトは次のとおりです。
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を作成します。 がのユーザーであると判断されたループがあれば、それは継続されます...しかし、私はどのようにしたいのですか? 2番目のforeachを続行するのではなく、メッセージの出力全体をスキップする必要があります。
変数$ data ['uid_fk']は、データベースに格納されているメッセージ作成者です。
データベースクエリ:あなたcontinue
このフラグが設定されている場合は、フラグを設定し
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でフィルタリングする必要があるすべての更新ではなく、友人の更新のみを返すように、あなたのクエリですでに解決しておくことをお勧めします。 – hakre
私はこれをまっすぐにしましょう。第2回目のループを脱出する必要がありますか?それを中断する必要がある場合は、キーワード 'break'を使用してください。私はおしゃべらにしようとしていない、私はそれを読んでミスかもしれない、より良い質問を指定してください! – Michael
申し訳ありませんが、マイケルは、そのように壊れていないので、私は現在のループをスキップし、残りのforeachループを続行する必要があります。 hakre、私はクエリーでこれをやり遂げる方法がわからないので、私のクエリーコードを1分で追加します。私は試しました。 –