Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) MySQL Запрос к БД DLE 10.0

Запрос к БД DLE 10.0


     21.02.2014    MySQL    1562

вопрос
Доброго всем времени!
Уважаемые знатоки, помогите мне пожалуйста с запросом.
Что нужно добавить что бы вывести $row ['foto'] из таблицы user
Часть кода.
// Groups to ignore
$groups = $config['comments_in_per_groups'];
// Counter
$i = 1;

$sql = $db->query( "SELECT autor, user_id, count(id) as comments_sum FROM ".PREFIX."_comments where date between '".$startDate."' and '".$endDate."' and autor not in (SELECT name FROM ".PREFIX."_users where user_group in (".$groups.")) and user_id != 0 group by autor order by count(id) DESC limit ".$limit );

$comments_in_period = "<div id=\"utopBox\">
    <div id=\"popular\" class=\"block\">
        <div class=\"dtop\"></div>
        <div class=\"dcont\">
        <div class=\"utop-block\">";

while( $row = $db->get_array($sql) ) {
if ($config['allow_alt_url'] == "yes") {
$user_link = "/user/".$row['autor']."/";
$userlink = "<a href=\"".$user_link."\" onclick=\"ShowProfile('".$row['autor']."', '".$user_link."', '".$member_id['user_group']."'); return false;\">";
} else {
$userlink = "<a href=\"$PHP_SELF?subaction=userinfo&user=".$row['autor']."\">";
}

$comments_in_period .="<div class=\"utop_user\" align=\"center\">";
$comments_in_period .="<span class=\"hint-data\" style=\"display:none;\"></span><div class=\"utop_avatar\">";
$comments_in_period .="<div class=\"utop_user_number\">".str_pad($i,1,"0",STR_PAD_LEFT)."</div>";
$comments_in_period .=$userlink;
$comments_in_period .="<img class=\"utop_ava\" src=\"/uploads/fotos/".$row['foto']."\" alt=\"Аватар ".$row['autor']."\" title=\"".$row['autor']." на ".$i." месте<br />Комментариев: ".$row['comments_sum']."\"/>";
$comments_in_period .="</a></div><div>";
$comments_in_period .=$userlink;
$comments_in_period .="<b>".$row['autor']."</b>";
$comments_in_period .="</a></div></div>";
    $i++;

    }

$comments_in_period .="</div></div><div class=\"dbtm\">&nbsp;</div></div></div>";
Заранее спасибо!

Ответа пока нет


Комментарии пользователей (6)

pavel31
4

345 | 158

pavel31 - 21 февраля 2014 22:12 - Юзер


if(($row['foto'] != "") AND (file_exists(ROOT_DIR.'/uploads/fotos/'.$row['foto']))) {
    $foto = $config['http_home_url'].'uploads/fotos/'.$row['foto'];
}
elseif (count(explode("@", $row['foto'])) == 2) {
    $foto = 'http://www.gravatar.com/avatar/'.md5(trim($row['foto']));
}
elseif (file_exists(ROOT_DIR.'/templates/'.$config['skin'].'/dleimages/noavatar.png')) {
    $foto = $config['http_home_url'].'templates/'.$config['skin'].'/dleimages/noavatar.png';
}
else {
    $foto = $config['http_home_url'].'templates/'.$config['skin'].'/images/noavatar.png';
}

В переменной $foto будет аватар пользователя.

BAHO
48

171 | 54

BAHO - 21 февраля 2014 22:28 - Юзер

Возможно я не правильно задал вопрос, но мне необходимо вывести запросом из БД аватар пользователя из таблицы dle_user а потом уже проверять есть или нет аватар у пользователя
Вот сам запрос
$sql = $db->query( "SELECT autor, user_id, count(id) as comments_sum FROM ".PREFIX."_comments where date between '".$startDate."' and '".$endDate."' and autor not in (SELECT name FROM ".PREFIX."_users where user_group in (".$groups.")) and user_id != 0 group by autor order by count(id) DESC limit ".$limit );
Вот что сюда добавить чтобы допустим переменная $user_ava взяла аватар автора написавшего комментарий из таблицы dle_user.
Так как предложили вы просто выводит noavatar

pavel31
4

345 | 158

pavel31 - 21 февраля 2014 23:32 - Юзер


$sql = $db->query( "SELECT autor, foto, user_id, count(id) as comments_sum FROM ".PREFIX."_comments where date between '".$startDate."' and '".$endDate."' and autor not in (SELECT name FROM ".PREFIX."_users where user_group in (".$groups.")) and user_id != 0 group by autor order by count(id) DESC limit ".$limit );

Вот так будет аватар пользователя

BAHO
48

171 | 54

BAHO - 21 февраля 2014 23:45 - Юзер

Откуда колонка foto в таблице dle_comments?
Спасибо за помощь. Сделал.

pavel31
4

345 | 158

pavel31 - 22 февраля 2014 12:25 - Юзер

BAHO,
Извини не заметил, тогда вот так:

$sql = $db->query( "SELECT autor, user_id, count(id) as comments_sum FROM ".PREFIX."_comments where date between '".$startDate."' and '".$endDate."' and autor not in (SELECT foto, name FROM ".PREFIX."_users where user_group in (".$groups.")) and user_id != 0 group by autor order by count(id) DESC limit ".$limit );

BAHO
48

171 | 54

BAHO - 23 февраля 2014 19:08 - Юзер

Опять же не работает так я пробовал :) из-за
and autor not in (SELECT foto, name FROM ".PREFIX."_users where user_group in (".$groups."))
здесь отфильтровывается группа которую не нужно выводить, я сделал отдельным запросом.
$sql_l = $db->query( "select foto from ".PREFIX."_users where user_id=".$row['user_id']);
while( $row_w = $db->get_array($sql_l) ) {
if(($row_w['foto'] != "") AND (file_exists(ROOT_DIR.'/uploads/fotos/'.$row_w['foto']))) {
    $user_ava = $config['http_home_url'].'uploads/fotos/'.$row_w['foto'];
}
elseif (count(explode("@", $row_w['foto'])) == 2) {
    $user_ava = 'http://www.gravatar.com/avatar/'.md5(trim($row_w['foto']));
}
elseif (file_exists(ROOT_DIR.'/templates/'.$config['skin'].'/dleimages/noavatar.png')) {
    $user_ava = $config['http_home_url'].'templates/'.$config['skin'].'/dleimages/noavatar.png';
}
else {
    $user_ava = $config['http_home_url'].'templates/'.$config['skin'].'/images/noavatar.png';
}
}

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы