вот какие данные нужны (каждого пользователя):
Форум
- число постов
- число тем
- число слов во всех постах
Почта
-полученые сообщения
-отправленые сообщения
Личное
-дней на форуме
зарание спасибо! :wink:
помогите с запросами к БД
-
- phpBB 1.4.4
- Сообщения: 111
- Стаж: 19 лет 10 месяцев
- Откуда: Германия
-
- Former team member
- Сообщения: 3942
- Стаж: 20 лет
- Откуда: Оренбург (Южный Урал)
- Благодарил (а): 3 раза
а на свалке модов копались phpbbhacks.com?
запросы типа user statistic Most Active
а это смотрели http://www.phpbbhacks.com/forums/statistics.php
запросы типа user statistic Most Active
а это смотрели http://www.phpbbhacks.com/forums/statistics.php
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
-
- phpBB 1.4.4
- Сообщения: 111
- Стаж: 19 лет 10 месяцев
- Откуда: Германия
Вы меня не так поняли. Вот к примеру есть пользователь Вася. Вот о нем мне нужны все данные. И тем же макаром нужно вывести таблицу о всех пользователях.Поручик писал(а):а на свалке модов копались phpbbhacks.com?
запросы типа user statistic Most Active
а это смотрели http://www.phpbbhacks.com/forums/statistics.php

"От судьбы не уйдешь, а если ушел - значит, не судьба!"
-
- Former team member
- Сообщения: 3942
- Стаж: 20 лет
- Откуда: Оренбург (Южный Урал)
- Благодарил (а): 3 раза
Я вас правильно понял. Вам нужна статистика по пользователю (вот вам и запрос к поисковой системе). Такие моды наверняка есть. Поищите (примерные запросы я вам дал). Если нет, будем думать. Есть кое-какие идеи, навеянные модом Invision View Profile. Вам о чем нибудь говорит этот код из мода
Сканирование таблицы пользователей, выборка данных по каждому.
В общем, если всего того, что вам нужно, в одном флаконе нет, то спасибо будет стоит порядка нескольких часов, а то и дней, работы (написание кода, отладка, тестирование)
Код: Выделить всё
function get_forum_most_active($user)
{
global $db, $userdata;
if ( intval($user) == 0 )
{
$user = trim(htmlspecialchars($user));
$user = substr(str_replace("\\'", "'", $user), 0, 25);
$user = str_replace("'", "\\'", $user);
}
else
{
$user = intval($user);
}
$sql_forum = "SELECT forum_id, forum_name FROM " . FORUMS_TABLE . "
ORDER BY forum_id";
if ( !($result = $db->sql_query($sql_forum)) )
{
message_die(GENERAL_ERROR, 'Could not obtain forums list', '', __LINE__, __FILE__, $sql_forum);
}
$most_active_id = array();
while ( $line = $db->sql_fetchrow($result) )
{
$most_active_id[] = $line['forum_id'];
$most_active_name[$line['forum_id']] = $line['forum_name'];
}
$db->sql_freeresult($result);
$count_most_active_id = count($most_active_id);
$most_active_posts = 0;
$num_result = 0;
foreach ( $most_active_id as $i )
{
$is_auth = auth(AUTH_VIEW, $i, $userdata);
if ( $is_auth['auth_view'] == 1 )
{
$sql_most = "SELECT *
FROM " . POSTS_TABLE . "
WHERE forum_id = $i AND poster_id = $user";
if ( !($result = $db->sql_query($sql_most)) )
{
message_die(GENERAL_ERROR, 'Tried obtaining data for a non-existent user', '', __LINE__, __FILE__, $sql_most);
}
if ( $db->sql_numrows($result) > $most_active_posts )
{
$most_active_posts = $db->sql_numrows($result);
$most_active_foren_id = $i;
$most_active_forum_name = $most_active_name[$i];
}
}
}
return array('forum_id' => $most_active_foren_id, 'forum_name' => $most_active_forum_name, 'posts' => $most_active_posts);
}
Это тоже есть.sergejjjjjjjjjjj писал(а):-дней на форуме
Код: Выделить всё
//
// Calculate the number of days this user has been a member ($memberdays)
// Then calculate their posts per day
//
$regdate = $profiledata['user_regdate'];
$memberdays = max(1, round( ( time() - $regdate ) / 86400 ));
В общем, если всего того, что вам нужно, в одном флаконе нет, то спасибо будет стоит порядка нескольких часов, а то и дней, работы (написание кода, отладка, тестирование)
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
-
- phpBB 1.4.4
- Сообщения: 111
- Стаж: 19 лет 10 месяцев
- Откуда: Германия
Я просто хотел сделать так, чтобы звания давались не только за сообщения, но за то что я перечислил выше. все эти данные будут сложены в нихитрую формулу. и каждый день все бы автоматом обновлялось, например в какое-то определенное время и тем самым изменялось бы звания пользователей. вот по тому я и попросил показать мне примеры запросов (как это правильно делается, так как у меня не получается чего-то ничего
) чтобы знать из чего творить формулу.

"От судьбы не уйдешь, а если ушел - значит, не судьба!"
-
- Former team member
- Сообщения: 3942
- Стаж: 20 лет
- Откуда: Оренбург (Южный Урал)
- Благодарил (а): 3 раза
Тода изучите mod Auto Group, На этом сайте он есть.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
-
- phpBB 1.4.4
- Сообщения: 111
- Стаж: 19 лет 10 месяцев
- Откуда: Германия
что-то я не сильно понял к чему это? 
И вот еще какая проблема. вот на что у меня хватило мозгов
нужно чтобы показалывало не все количество постов и писем, а только то что относится к пользователю. вроде это делается с помощью WHERE и AND. только вот у меня ничего не получается

И вот еще какая проблема. вот на что у меня хватило мозгов
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// Default page
// Eoi oi?ao caia?ieeou - oaa?eoa /* e */
if ( !$userdata['session_logged_in'] )
{
redirect(append_sid("login.$phpEx?redirect=.$phpEx", true));
}
$sql = 'SELECT u.user_id, u.username, u.user_regdate, u.user_posts, COUNT(DISTINCT t.topic_id) AS topics, t.topic_poster, COUNT(DISTINCT p.privmsgs_id) AS privmsgs_from, p.privmsgs_from_userid, COUNT(DISTINCT p.privmsgs_id) AS privmsgs_to, p.privmsgs_to_userid
FROM '.USERS_TABLE.' u, '.TOPICS_TABLE.' t, '.PRIVMSGS_TABLE.' p
WHERE u.user_id <> ' . ANONYMOUS . '
GROUP BY u.user_id';
if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_MESSAGE, 'Couldn\'t select information');
}
if ( $row = $db->sql_fetchrow($result) )
{
$i = 0;
do
{
$username = $row['username'];
$user_id = $row['user_id'];
$posts = $row['user_posts'];
$topics = $row['topics'];
$privmsgs_from = $row['privmsgs_from'];
$privmsgs_to = $row['privmsgs_to'];
$memberday = max(1, round( ( time() - $row['user_regdate'] ) / 86400 ));
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
$template->assign_block_vars('row', array(
'ID' => $user_id,
'NAME' => $username,
'POST' => $posts,
'TOPICS' => $topics,
'PRIVMSGS_FROM' => $privmsgs_from,
'PRIVMSGS_TO' => $privmsgs_to,
'MEMBERDAYS' => $memberday ,
'ROW_COLOR' => '#' . $row_color,
'ROW_CLASS' => $row_class)
);
}
while ( $row = $db->sql_fetchrow($result) );
$db->sql_freeresult($result);
}
// Generate page
//
$page_title = $lang[''];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
make_jumpbox($phpbb_root_path .'viewforum.'.$phpEx);
// Load templates
//
$template->set_filenames(array(
'body' => 'qqq.tpl')
);
$template->assign_vars(array(
)
);
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Код: Выделить всё
<link href="subSilver.css" rel="stylesheet" type="text/css">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="204" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>{MENU_OUTPUT}</td>
</tr>
</table></td>
<td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>{NAVIGATION_BOX}</td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="100%" border="0" cellpadding="0" cellspacing="0" class="forumline">
<tr>
<td><table width="100%" border="0" cellpadding="3" cellspacing="1" >
<tr class="thTop">
<th>ID</th>
<th>NAME</th>
<th>POSTS</th>
<th>TOPICS</th>
<th>MEMBERDAYS</th>
<th>PRIVMSGS FROM</th>
<th>PRIVMSGS TO</th>
<th> </th>
<th> </th>
<th> </th>
</tr>
<!-- BEGIN row -->
<tr>
<td class="{row.ROW_CLASS}">{row.ID}</td>
<td class="{row.ROW_CLASS}">{row.NAME}</td>
<td class="{row.ROW_CLASS}">{row.POST}</td>
<td class="{row.ROW_CLASS}">{row.TOPICS}</td>
<td class="{row.ROW_CLASS}">{row.MEMBERDAYS}</td>
<td class="{row.ROW_CLASS}">{row.PRIVMSGS_FROM}</td>
<td class="{row.ROW_CLASS}">{row.PRIVMSGS_TO}</td>
<td class="{row.ROW_CLASS}"> </td>
<td class="{row.ROW_CLASS}"> </td>
<td class="{row.ROW_CLASS}"> </td>
</tr>
<!-- END row -->
</table> </td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
<br clear="all" />
"От судьбы не уйдешь, а если ушел - значит, не судьба!"