나는 데이터베이스 내에서 메시지를 출력하는 스크립트를 가지고있다.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를 만듭니다. 어떤 루프가 이 아니라면이 사용자가 될 것이라고 판단하면 계속됩니다 ... 그러나 내가 계속하고 싶습니다. 두 번째 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
이걸 바로 잡자. 당신은 두 번째 루프에서 탈출해야합니까? 만약 당신이 그것에서 벗어날 필요가 있다면, 키워드'break'를 사용하십시오. 나는 열렬히하려고 노력하지 않고있다, 나는 그것을 읽는 것을 놓칠지도 모른다. – Michael
미안 해요, 그런 식으로 깨지 말고, 현재 루프를 "건너 뛰고"나머지 foreach 루프를 계속해야합니다. hakre, 쿼리를 통해이를 수행하는 방법을 알 수 없으므로 잠시 후에 쿼리 코드를 추가 할 것입니다. 나는 시도했다. –