Правильно ли сделана выборка из базы ?
Бьюсь вторую ночь, сломал всю голову, мозги кипят..
$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. не нужно воспринимать все в штыки, а то при таких реакциях желание помочь пропадет.
, но Fuze задал абсолютно нормальный вопрос. Информации пусть будет больше, чем меньше. По вопросу не всё ясно. Запрос вроде бы корректен. Что именно не работает? Что хочешь получить? Из того, что заметил, я бы не стал в таблице 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}
Всем кто откликнулся тоже спасибо, проблема решена.