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:
$sql = "SELECT * FROM " . GROUP_COMMUNITY . " ORDER BY rand()"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $avatarek = $row['avatar_url']; $id_grupki = $row['id']; $name_group = $row['group_name']; $title_group = $row['group_title']; $sql = "SELECT * FROM " . USER_GROUP_COMMUNITY . " WHERE group_community_id = $id_grupki"; $wynik = $db->sql_query($sql); $avatar_grupy = ''; if ( $avatarek != NULL ) { $avatar_grupy .= '<img src="' . $avatarek . '" class="avatar_grupy" alt="" border="0" />'; } else { $avatar_grupy .= '<img src="http://www.ufs.pl/forum/images/misc/unknown_sg.gif" width="40" height="40" class="avatar_grupy" alt="" border="0" />'; } $sql = "SELECT * FROM " . USER_GROUP_COMMUNITY . " WHERE group_community_id = $id_grupki"; $wyn = $db->sql_query($sql); while ( $rowek = $db->sql_fetchrow($wyn)) { $id_userkow[] = $rowek['user_id']; } $sql = "SELECT user_id, username, user_avatar, user_avatar_type, user_allowavatar FROM " . USERS_TABLE . " WHERE user_id IN ($id_userrkow) ORDER BY rand() LIMIT 10"; if ( !($wyn = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'last avatar', '', __LINE__, __FILE__, $sql); } $users_avatars = ''; while ($avek = $db->sql_fetchrow($wyn)) { if ( $avek['user_avatar_type'] && $avek['user_allowavatar'] ) { switch( $avek['user_avatar_type'] ) { case USER_AVATAR_UPLOAD: $users_avatars .= ( $board_config['allow_avatar_upload'] ) ? '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . 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> ' : ''; break; case USER_AVATAR_REMOTE: $users_avatars .= ( $board_config['allow_avatar_remote'] ) ? '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $avek['user_id']) . '"' . ' class="genmed"><img src="' . $avek['user_avatar'] . '" title="'.$avek['username'].'" class="avatar_usera" alt="" border="0" /></a> ' : ''; break; case USER_AVATAR_GALLERY: $users_avatars .= ( $board_config['allow_avatar_local'] ) ? '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . 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> ' : ''; break; } } else { $users_avatars .= '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . 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> '; } } $users_in_group = ''; if ( $ilosc_userow == '1' ) { } else { } $group_namee = '<a href="group_community.' . $phpEx . '?mode=show_group&id='.$id_grupki.'">'.$name_group.'</a>'; 'USERS_IN_GROUP' => $users_in_group, 'AVATAR_GRUPY' => $avatar_grupy, 'AVATARY_USEROW' => $users_avatars, 'NAZWA_GRUPY' => $group_namee, 'OPIS_GRUPY' => $title_group) ); }
Winowajcą jest zmienna $id_grupki; tylko nie wiem czemu błędnie wyświetla te ID :?:
pozdr.