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:
$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'];
}
$id_userrkow = implode(",",$id_userkow); $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' )
{
$users_in_group = sprintf($lang['user_in_group'], $ilosc_userow); }
else
{
$users_in_group = sprintf($lang['users_in_group'], $ilosc_userow); }
$group_namee = '<a href="group_community.' . $phpEx . '?mode=show_group&id='.$id_grupki.'">'.$name_group.'</a>';
$template->assign_block_vars('losowe', array( '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.
Ten post edytował Mody23 29.12.2011, 13:35:13