Правильно ли сделана выборка из базы ?
Бьюсь вторую ночь, сломал всю голову, мозги кипят..
$sql = "SELECT u.userid, u.userlogin, u.usernickname, u.visiting as visiting, p.imageurl, p.user_id
FROM cms_goodboy u
LEFT JOIN cms_user_profiles p ON p.user_id = u.userid
ORDER BY visiting
DESC LIMIT ".$cfg['count'];
Прошу помощи…
Уважаемый Fuze, конечно все работает! Мне просто по приколу отнимать свое и Ваше время, а еще мне абсолютно в прикол просить у вас помощи.....так суть проблемы то в чем? что не работает?
Знал бы по имени, обратился бы....
Да, не работает, поэтому прошу подсказать, что я делаю не так… прошу Вас не стебаться надо мной, так как изучаю PHP кусками по инету…
Да кто стебется то, я спрашиваю ЧТО не работает, запрос нормальный. Ошибка какая или что? Суть вопроса не ясна, перефразируйте, спросите иначе.Уважаемый Fuze, конечно все работает! Мне просто по приколу отнимать свое и Ваше время, а еще мне абсолютно в прикол просить у вас помощи.....
p.s. не нужно воспринимать все в штыки, а то при таких реакциях желание помочь пропадет.
Из того, что заметил, я бы не стал в таблице cms_goodboy делать лищние колонки userlogin, usernickname. Их можно получить из таблицы cms_users. Для привязки оставил бы только колонку userid. Но это просто замечание и это не влияет на работоспособность запроса.
Нет условия where в запросе. Берете всю таблицу? Попробуй сделать этот запрос в phpmyadmin, подставивь вместо переменных их значения. Или после запроса в файле php вывести массив полученный из таблицы. Только не сам $result, а после обработки fetch_assoc-ом. Примерно так:
И конечно же на время отладки нужно включать вывод ошибок мускул и php. И ошибки в студию. Побольше информации.
Делаю топ по посещениям, за пример взял модуль mod_user_rating, все делаю по аналогии, но не получается..
$sql = "SELECT u.userid, u.userlogin, u.usernickname, u.visiting as visiting, p.imageurl, p.user_id FROM cms_goodboy u LEFT JOIN cms_user_profiles p ON p.user_id = u.userid ORDER BY visiting DESC LIMIT ".$cfg['count']; $result = $inDB->query($sql); $is_usr = false; if ($inDB->num_rows($result)){ $is_usr=true; include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php'); } while($usr = $inDB->fetch_assoc($result)){ $usr['profileurl'] = cmsUser::getProfileURL($usr['userlogin']); $usr['usrimage'] = usrImageNOdb($usr['userid'], 'small', $usr['imageurl']); $users[] = $usr; } } $smarty = $inCore->initSmarty('modules', 'mod_topvisiting.tpl'); $smarty->assign('users', $users); $smarty->assign('cfg', $cfg); $smarty->assign('is_usr', $is_usr); $smarty->display('mod_topvisiting.tpl');
{if $is_usr} <table cellspacing="5" border="0" class="mod_user_rating"> <tr> <td width="20" class="avatar">{$usr.usrimage}</td> <td width=""> <a href="{$usr.profileurl}" class="nickname">{$usr.usernickname}</a> <div class="rating">{$usr.visiting}</div> </td> </tr> </table> {else} <p>Нет данных для отображения.</p> {/if}
"SELECT u.userid, u.userlogin, u.usernickname, u.visiting as visiting, p.imageurl, p.user_id FROM cms_goodboy u, cms_user_profiles p WHERE p.user_id = u.userid ORDER BY visiting DESC LIMIT ".$cfg['count'];
верно, ибо в исходном запросе ошибок вроде нет… тот что я предложил это так...Максим Шорин, так и не написал что не получается
интригует наверное)
{if $is_usr} <table cellspacing="5" border="0" class="mod_user_rating"> <tr> <td width="20" class="avatar">{$usr.usrimage}</td> <td width=""> <a href="{$usr.profileurl}" class="nickname">{$usr.usernickname}</a> <div class="rating">{$usr.visiting}</div> </td> </tr> {/foreach} </table> {else} <p>Нет данных для отображения.</p> {/if}
Всем кто откликнулся тоже спасибо, проблема решена.