Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
как подсчитать количество просмотров за месяц (Ирина) 22/03/2009 - 13:31:05
      Re: как подсчитать количество просмотров за месяц (Diter) 23/03/2009 - 16:06:03
      Re: как подсчитать количество просмотров за месяц (ирина) 23/03/2009 - 20:47:36
      Re: как подсчитать количество просмотров за месяц (Diter) 24/03/2009 - 08:39:18
      Re: как подсчитать количество просмотров за месяц (ирина) 24/03/2009 - 17:26:34
      Re: как подсчитать количество просмотров за месяц (Diter) 25/03/2009 - 06:38:59
      Re: конец обсуждения (Diter) 25/03/2009 - 06:45:34
      Re: как подсчитать количество дней рождений (Аська) 28/03/2009 - 12:30:19
      Re: как подсчитать количество дней рождений (Diter) 30/03/2009 - 08:02:10
      Re: как подсчитать количество коментариев (ирина) 30/03/2009 - 19:07:29
      Re: как подсчитать количество коментариев (Diter) 30/03/2009 - 23:04:58
      Re: как подсчитать количество коментариев (ирина) 31/03/2009 - 01:07:39
      Re: как подсчитать количество коментариев (Diter) 31/03/2009 - 16:49:18
      Re: как подсчитать количество коментариев (ирина) 31/03/2009 - 17:30:19
      Re: топ комментаторов за месяц (Diter) 01/04/2009 - 07:55:30
      Re: топ комментаторов за месяц (ирина) 01/04/2009 - 11:40:41
      Re: топ комментаторов за месяц (Diter) 01/04/2009 - 22:31:11
      Re: топ комментаторов за месяц (Diter) 02/04/2009 - 04:53:29

> Original message text:
> From: Ирина - 22/03/2009 - 13:31:05
> Subject:как подсчитать количество просмотров за месяц
> -----------------
> Здравствуйте.
> у меня в своем городе небольшой женский сайтик и тут нужно разобраться содним вопросом который я сама не осилю без вас =)
>
> у меня есть топ пользователей где ведется расчет по количеству новостей пользователей, запрос выглядит так -
>
> $FormatDate = date("Y-m-d");
> $sql = $db->query("SELECT autor FROM " . PREFIX . "_post WHERE date LIKE '%".$FormatDate."%'");
> if( !empty($sql) ) {
> $GlobalArray_news = array();
> $GlobalArray_news_sql = array();
> $j = "1";
> while( $row_news = $db->get_row($sql) ) {
> if(!$GlobalArray_news[$row_news['autor']] ) {
> $GlobalArray_news[$row_news['autor']] = "1";
> } else {
> $GlobalArray_news[$row_news['autor']]++;
> }
> $j++;
> }
> arsort( $GlobalArray_news );
> reset( $GlobalArray_news );
> $Top_news = "<table><td>";
> $i = "1";
> foreach($GlobalArray_news as $UserName => $NewsNumb) {
> if($i <= $set_news['num']) {
> $Uinfo = $db->super_query("SELECT foto, news_num, icq FROM " . PREFIX . "_users WHERE name='$UserName'"); //signature,
> и дальше уже формируються ники и т.п.
> Все это выводит пользователей в топ за последний месяц по количеству новостей.
> В таблице _post есть еще графа news_read - это количество просмотров новостей.
>
> Подскажите пожалуйста, как должен выглядить запрос чтобы подсчитывалось общее число просмотров новостей авторов за месяц типа топ по количеству просмотров.
>
> Буду очень признательна за помощь.
>


From: ирина - 24/03/2009 - 17:26:34
Subject:как подсчитать количество просмотров за месяц
-----------------
Спасибо это, то что надо =).
news_num это общее число новостей, выводиться просто для информации.

Только вот не могу ни как понять, я вставила общий запрос и убрала 1 который отдельно был - $Uinfo = $db->super_query("SELECT foto, news_num, icq FROM " . PREFIX . "_users WHERE name='$UserName'");

и теперь все выглядит так -

//первый день текущего месяца
$FirstDay = date("Y-m-01 00:00:00");
//текущий день
$CurrentDay = date("Y-m-d H:i:s");

$db->query("SELECT
p.`autor`, SUM(p.`news_read`) as news_read,
u.`foto`, u.`news_num`, u.`icq`
FROM " . PREFIX . "_post as p
LEFT JOIN " . PREFIX . "_users as u ON u.`name`=p.`autor`
WHERE p.`date` BETWEEN '".$FirstDay."' AND '".$CurrentDay."'
GROUP BY p.`autor`
ORDER BY news_read DESC
LIMIT 10");

$j = "1";

$UserName = $row['name'];
while($row = $db->get_row()){

if( !$GlobalArray_news[$row['autor']] ) {
$GlobalArray_news[$row['autor']] = $row['news_read'];
} else {
$GlobalArray_news[$row['autor']]++;
}
$j++;

$Top_news = "<table><td>";
foreach($GlobalArray_news as $UserName => $NewsNumb) {

// Формируем ссылки на профиль
if ($config['allow_alt_url'] == "yes") {
if($config['ajax']) {

$profile_url = "<a class='".$set_news['LinkClass']."' href='".$config['http_home_url']."user/".urlencode($UserName)."/' Onclick=\"DlePage('subaction=userinfo&user=".urlencode($UserName)."'); return false;\">";
} else {
$profile_url = "<a class='".$set_news['LinkClass']."' href='".$config['http_home_url']."user/".urlencode($UserName)."/' >";

}

$LinkAllNews = "<a href=\"{$config['http_home_url']}user/{$UserName}\"><font color=\"black\"><u>{$$row['news_num']}</u></font></a>";
} else {

if($config['ajax']) {

$profile_url = "<a class='".$set_news['LinkClass']."' href='".$PHP_SELF."?subaction=userinfo&user=".urlencode($UserName)."' Onclick=\"DlePage('subaction=userinfo&user=".urlencode($UserName)."'); return false;\">";
} else {
$profile_url = "<a class='".$set_news['LinkClass']."' href='".$PHP_SELF."?subaction=userinfo&user=".urlencode($UserName)."' >";

}
$LinkAllNews = "<a href=\"{$config['http_home_url']}index.php?subaction=allnews&user={$UserName}\"><font color=\"black\"><u>{$row['news_num']}</u></font></a>";
}
$UserName_news = "{$profile_url}{$UserName}</a>";

// Формируем аватару
if($row["foto"] != "") {

$avatar_news = "{$profile_url}<img style='border: 0px solid #ffffff;' src=\"".$config['http_home_url']."uploads/fotos/".$row['foto']."\" align=\"left\" width=\"50\"></a>";
} else {
$avatar_news = "{$profile_url}<img style='border: 0px solid #ffffff;' src=\"".$config['http_home_url']."templates/".$config['skin']."/images/noavatar.png\" align=\"left\" width=\"50\"></a>";

}

$template_news = trim($set_news['gen_tpl']);
$Top_news .= str_replace(
array("%avatar%", "%login%", "%month%", "%all_news%"),
array($avatar_news, $UserName_news, $GlobalArray_news[$UserName], $LinkAllNews), $template_news
);
}
$Top_news .= "</td></table>";
}

И получается вот какая история - ники пользователей, ссылки на их профили, количество просмотров выводятся правильно и для каждого свои данные, но вот аватарка и количество новостей у всех одинаковые т.е. какая аватара и сколько новостей у последнего в топе теже и у остальных. Тут дело уже не в запросе видимо а в самом коде, может я не правильно с foreach что-то делаю или еще в чем-то ошибка. Подскажите пожалуйста.




[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
35284



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |