이벤트를 포함하는 테이블이 있습니다. 이벤트 테이블을 반복하고, 이벤트 유형을 확인하고, 이벤트 ID가있는 특정 테이블을 조회합니다.mysql 쿼리와 하위 쿼리 결과를 하나의 PHP 배열로 결합합니다.
이 순간에 하나의 쿼리를 사용하여 20 개의 이벤트를 얻은 다음 최대 3 개의 쿼리를 사용하여 해당 이벤트의 데이터를 가져옵니다. 나는 현재 절차 적으로 코드화 해 놓았지만 결국에는 배열 형태로 데이터를 반환하도록 변경해야한다.
while(eventQuery):
if commentQueryResult;
$array .= commentQueryResult;
if forumPostQueryResult;
$array .= forumPostQueryResult;
if uploadItemQueryResult;
$array .= uploadItemQueryResult;
endwhile;
return $array; // Combined returned results as one array
내가 다음을 통해 데이터와 단지 foreach는 루프에 액세스 할 수 있습니다 :
는 여기에 내가 달성하기 위해 필요한의 Pseduo 코드 예입니다.
여러 결과 집합을 배열로 결합하는 가장 좋은 방법은 확실하지 않습니까?
또는 당신이 시도하고 하나 개의 쿼리로 결합 할 수 ... 내가 PDO 이러한 모든 변환하는 과정에있어
$eventResult = mysql_query(
'SELECT userevent.event, userevent.eventId, userevent.friendId
FROM userevent
WHERE userevent.userId = 1 OR userevent.friendId = 1
ORDER BY userevent.id DESC
LIMIT 20'
);
while ($eventRow = mysql_fetch_row($eventResult)){
if($eventRow[0] == 1){
$result = mysql_fetch_array(mysql_query("
SELECT forumRooms.id, forumRooms.title
FROM forumPosts
INNER JOIN forumRooms ON forumPosts.`forumTopic` = forumRooms.`id`
WHERE forumPosts.id = '$eventRow[1]'"));
}
elseif($eventRow[0] == 2){
$result = mysql_fetch_array(mysql_query("
SELECT game.id, game.uriTitle, game.title
FROM usergamecomment
INNER JOIN game ON usergamecomment.`gameId` = game.id
WHERE usergamecomment.id = $eventRow[1]"));
}
elseif($eventRow[0] == 4){
$result = mysql_fetch_array(mysql_query("
SELECT usercomment.comment, UNIX_TIMESTAMP(usercomment.TIME), `user`.id, `user`.username, `user`.activate
FROM usercomment
INNER JOIN `user` ON usercomment.`userId` = `user`.id
WHERE usercomment.id = $eventRow[1]
AND `user`.activate = 1"));
}
elseif($eventRow[0] == 5){
$result = mysql_fetch_array(mysql_query("
SELECT game.id, game.title, game.uriTitle
FROM game
WHERE game.id = $eventRow[1]"));
}
// Combined Results as array
}
, 즉 가장 좋은 방법은 운동 후 다음 단계의 이것을 최소화하십시오.
하나의 쿼리로 이벤트 목록과 이벤트 유형 테이블을 모두 쿼리 할 수 있습니까? 'SELECT * FROM event e INNER JOIN eventType et on e.eventid = et.eventID' 당신의 질문을 오해했을 가능성이 있습니다. – andrewsi
조인은 너무 복잡합니다. 다른 결과에서 반환 된 데이터 배열을 생성하기 위해 PHP를 사용하여 첫 번째 쿼리를 반복합니다. – Dan
너무 복잡합니까? 나는 우리를 시험해 보라고 말할 것입니다. 적어도 나는 두뇌 티어를 좋아합니다. ;) – Paul