Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » MySQL » Запрос к БД DLE 10.0

Запрос к БД DLE 10.0


     21.02.2014    запрос, MySQL    Все вопросы » MySQL    3559

вопрос
Доброго всем времени!
Уважаемые знатоки, помогите мне пожалуйста с запросом.
Что нужно добавить что бы вывести $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>";
Заранее спасибо!

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


7 комментариев

pavel31
Юзер

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
Юзер

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
Юзер

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
Юзер

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

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

pavel31
Юзер

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
Юзер

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';
}
}

Lordi
Юзер

Lordi - 28 марта 2017 23:36 -


Здравствуйте. у меня почему то не выводит аватарку

// ссылка на аватар
				if(($userinfo['foto'] != "") AND (file_exists(ROOT_DIR . "/uploads/fotos/{$userinfo['foto']}"))) {
				$userinfo['foto'] = "{$this->dle_config['http_home_url']}uploads/fotos/{$userinfo['foto']}";
				} else {
				$userinfo['foto'] = "{$this->dle_config['http_home_url']}templates/{$this->dle_config['skin']}/images/noavatar.png";
				}

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

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

наверх