Witam!

Mam mały problem, przy wyciąganiu danych z ORDER BY rand(). Mianowicie, wyświetlam grupy losowo (czyli za pomocą rand () ) no i grupy się wyświetlają w porządku. Natomiast, avatary userów, którzy należą do danej grupy już nie. W każdej z tych grup jest maksymalnie dwóch użytkowników, tymczasem mi wyświetla trzy (chyba wszystkich userów z bazy, bo tyle ich mam) i na dodatek, userzy mają następujące ID w bazie: 2, 3, 4. Tymczasem jak wyciągam ID userów należących do danej grupy, to zmienna zwraca coś takiego:

4,3,24,3,2,2,34,3,2,2,3,44,3,2,2,3,4,3,2

Nie wiem skąd się biorą te ID 24, 44 (chyba się łączą, tak myślę) i dodatkowo, nie wiem czemu aż tyle tych ID jest.

Kod PHP:

  1. $sql = "SELECT * FROM " . GROUP_COMMUNITY . " ORDER BY rand()";
  2. $result = $db->sql_query($sql);
  3. while ($row = $db->sql_fetchrow($result))
  4. {
  5. $avatarek = $row['avatar_url'];
  6. $id_grupki = $row['id'];
  7. $name_group = $row['group_name'];
  8. $title_group = $row['group_title'];
  9.  
  10. $sql = "SELECT * FROM " . USER_GROUP_COMMUNITY . " WHERE group_community_id = $id_grupki";
  11. $wynik = $db->sql_query($sql);
  12. $ilosc_userow = mysql_num_rows($wynik);
  13.  
  14. $avatar_grupy = '';
  15. if ( $avatarek != NULL )
  16. {
  17. $avatar_grupy .= '<img src="' . $avatarek . '" class="avatar_grupy" alt="" border="0" />';
  18. }
  19. else
  20. {
  21. $avatar_grupy .= '<img src="http://www.ufs.pl/forum/images/misc/unknown_sg.gif" width="40" height="40" class="avatar_grupy" alt="" border="0" />';
  22. }
  23.  
  24. $sql = "SELECT * FROM " . USER_GROUP_COMMUNITY . " WHERE group_community_id = $id_grupki";
  25. $wyn = $db->sql_query($sql);
  26. while ( $rowek = $db->sql_fetchrow($wyn))
  27. {
  28. $id_userkow[] = $rowek['user_id'];
  29. }
  30.  
  31. $id_userrkow = implode(",",$id_userkow);
  32. $sql = "SELECT user_id, username, user_avatar, user_avatar_type, user_allowavatar
  33. FROM " . USERS_TABLE . "
  34. WHERE user_id IN ($id_userrkow) ORDER BY rand() LIMIT 10";
  35. if ( !($wyn = $db->sql_query($sql)) )
  36. {
  37. message_die(GENERAL_ERROR, 'last avatar', '', __LINE__, __FILE__, $sql);
  38. }
  39.  
  40. $users_avatars = '';
  41. while ($avek = $db->sql_fetchrow($wyn))
  42. {
  43. if ( $avek['user_avatar_type'] && $avek['user_allowavatar'] )
  44. {
  45. switch( $avek['user_avatar_type'] )
  46. {
  47. case USER_AVATAR_UPLOAD:
  48. $users_avatars .= ( $board_config['allow_avatar_upload'] ) ? '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '=' . $avek['user_id']) . '"' . ' class="genmed"><img src="' . $board_config['avatar_path'] . '/' . $avek['user_avatar'] . '" title="'.$avek['username'].'" class="avatar_usera" alt="" border="0" /></a>&nbsp;&nbsp;' : '';
  49. break;
  50. case USER_AVATAR_REMOTE:
  51. $users_avatars .= ( $board_config['allow_avatar_remote'] ) ? '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '=' . $avek['user_id']) . '"' . ' class="genmed"><img src="' . $avek['user_avatar'] . '" title="'.$avek['username'].'" class="avatar_usera" alt="" border="0" /></a>&nbsp;&nbsp;' : '';
  52. break;
  53. case USER_AVATAR_GALLERY:
  54. $users_avatars .= ( $board_config['allow_avatar_local'] ) ? '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '=' . $avek['user_id']) . '"' . ' class="genmed"><img src="' . $board_config['avatar_gallery_path'] . '/' . $avek['user_avatar'] . '" title="'.$avek['username'].'" alt="" class="avatar_usera" border="0" /></a>&nbsp;&nbsp;' : '';
  55. break;
  56. }
  57. }
  58. else
  59. {
  60. $users_avatars .= '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '=' . $avek['user_id']) . '"' . ' class="genmed"><img src="http://www.ufs.pl/forum/images/misc/unknown_sg.gif" class="avatar_usera" title="'.$avek['username'].'" border="0" /></a>&nbsp;&nbsp;';
  61.  
  62. }
  63.  
  64. }
  65.  
  66. $users_in_group = '';
  67. if ( $ilosc_userow == '1' )
  68. {
  69. $users_in_group = sprintf($lang['user_in_group'], $ilosc_userow);
  70. }
  71. else
  72. {
  73. $users_in_group = sprintf($lang['users_in_group'], $ilosc_userow);
  74. }
  75.  
  76. $group_namee = '<a href="group_community.' . $phpEx . '?mode=show_group&id='.$id_grupki.'">'.$name_group.'</a>';
  77.  
  78. $template->assign_block_vars('losowe', array(
  79. 'USERS_IN_GROUP' => $users_in_group,
  80. 'AVATAR_GRUPY' => $avatar_grupy,
  81. 'AVATARY_USEROW' => $users_avatars,
  82. 'NAZWA_GRUPY' => $group_namee,
  83. 'OPIS_GRUPY' => $title_group)
  84. );
  85. }


Winowajcą jest zmienna $id_grupki; tylko nie wiem czemu błędnie wyświetla te ID :?:

pozdr.