2012-08-05 2 views
0

나는 데이터베이스에 friends_array으로 저장된 사용자 친구가 있습니다. 그들은 친구의 이드를 저장하고 혼수 상태로 분리됩니다. 사용자가 만든 게시물을 출력 할 수 있었지만 문제가 있습니다. 이것은 내 코드입니다. 예를 들어친구 뉴스 피드 - 최근 업데이트

if ($friend_feed != "") { 
$feed= explode(',', $feed); 
    foreach ($feedas $key => $value) { 
     $query = mysql_query("SELECT * FROM `users` WHERE user_id=$value ORDER BY `time` DESC") or die ("Please try again later."); 
     while ($row = mysql_fetch_array($query)) { 
      $first_name = $row['first_name']; 
      $last_name = $row['last_name']; 
      $username = $row['username']; 
      $post = $row['post']; 
      echo '<hr><a href ="'. $username .'">'.$first_name.' '.$last_name.'</a> <br>'.$post; 
     } 
    } 
} 

이 코드는 위의 친구 아이디의 통과 및 게시물을 출력 ...하지만 먼저 각각의 친구 간다 ... 나는 ID의 70, 71, 72 모든 경우 3 친구가 그들 중 두 게시물을 각각, 그들은 그들의 ID가 데이터베이스에 저장된 순서대로 출력되므로 사용자 70의 게시물이 먼저 올 것이다 다음 모든 사용자 71의 다음 사용자 72 ...

내가 어떻게 중지합니까 어떤 게시물이 최근에 데이터베이스에 입력되었는지 출력 할 수 있습니까?

답변

3

은 당신이 좋아하는 다른 쿼리를 시도 할 수 있습니다 :

SELECT * FROM `users` WHERE user_id IN ($feed) ORDER BY `time` DESC 

과 내가 폭발 및 foreach는 떨어 뜨린 경우 전체 foreachexplode

+0

드롭, 어떻게 USER_ID의 분리받을 수 있나요? 그들은 혼수 상태로 데이터베이스에 저장됩니다. 예 : 71, 72, 73. –

+0

필요하지 않습니다. 'WHERE user_id IN (...)'는 쉼표로 구분 된 ID 목록을 필요로합니다. – favoretti