Страница 1 из 2

Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 13.03.2009 17:02
tavot
Задумка:
Есть статистика для игровых серверов PsychoStats 3.1 .
Она считает много параметров, в том числе в % он лайн игрока на сервере.
Хочу сделать чтоб это поле (% он лайн) выводилось под аватаркой в профиле и в каждом топике. ( расположение это непроблема)

Что сделал сам:
Сделал в таблице phpbb_users поле user_id_online ( сделал все по аналогии с полем icq)
В этом поле пользователь будет указывать свой id в таблице от статистики PsychoStats

1запрос
так же во viewtopic.php по той же аналоги сделал запрос в базу к указанному юзером id
2 запрос
сделал запрос к базе от PsychoStats.

Проблема:
Не могу объеденить эти два запроса.
Если объеденяю - то во всех постах становится одно и то же значение.
при том если выводить первый запрос то он выводится правильно, согласну нужому полю user_id_online
( сложновато мне описать проблему, я в этом совсем новичек и пара книжек и интернет,пока что не всему научили)

Я думаю что проблема именно во viewtopic ( вернее в том что я там написал) все свои строки выделил
//%%%%%%%%%%%%%%%%
мой чайниковский код
//%%%%%%%%%%%%%%%%
Прилагаю файл.

Если кто то решитсья помчь, но не понял меня, пишите что не понятно, попытаюсь объяснить по подробнее....
Заранее благодарен вашему вниманию!
Не судите строго, знаю что этот код уязвимый и т.д. , я просто учусь, бился над проблемой долго и ни как не получается =(
моя icq 980500

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 15:36
Lektor
tavot
Не ну запросы конечно составлены смешно) я помогу исправить(попозже). Но вообще мне не очень нравится, то что юзер сам вводит айди.
Я в свое время (когда игрался с кс серверами) делал так: при регистрации на форуме автоматом регистрируется ник на кс сервере (в сети есть готовые решения), и на сам сервер пускает только зарегенных юзеров. В таком случае юзеру ниче вводить не надо было бы.

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 17:10
Lektor
tavot
Удалите из viewtopic.php весь свой код и выполните правки:

Код: Выделить всё

#FIND
//
// Go ahead and pull all data for this topic
//
$sql = "SELECT u.username, u.user_id

#IN-LINE FIND
pt.bbcode_uid

#IN-LINE AFTER ADD
, ps.activity

#FIND 
	FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt

#AFTER ADD
LEFT JOIN phpbb_ps_plr ps on ps.plrid = u.user_id_online

#FIND
	$poster_posts = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Posts'] . ': ' . $postrow[$i]['user_posts'] : '';

#AFTER ADD
	$poster_cs_activity = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? 'Активность: ' . $postrow[$i]['activity'] : '';

#FIND
		'POSTER_POSTS' => $poster_posts,

#AFTER ADD

		'POSTER_CS_ACTIVITY' => $poster_cs_activity,
Ну а дальше в viewtopic_body.tpl в нужном месте вставляете: {postrow.POSTER_CS_ACTIVITY}

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 17:21
tavot
Спасибо! теперь выводится, но есть огромное НО.
Если у пользователя не заполнено поле user_id_online то его постов в топике не будет.
вытекает вопрос:
Как сдлеать игнорирование вывода активности, если юзер не ввел ни каких данных?

Если брать аналогию с icq, то необходимо переделать под новый код, вот это:

Код: Выделить всё

		if ( !empty($postrow[$i]['user_icq']) )
		{
			$icq_status_img = '<a href="http://wwp.icq.com/' . $postrow[$i]['user_icq'] . '#pager"><img src="http://web.icq.com/whitepages/online?icq=' . $postrow[$i]['user_icq'] . '&img=5" width="18" height="18" border="0" /></a>';
			$icq_img = '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $postrow[$i]['user_icq'] . '"><img src="' . $images['icon_icq'] . '" alt="' . $lang['ICQ'] . '" title="' . $lang['ICQ'] . '" border="0" /></a>';
			$icq =  '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $postrow[$i]['user_icq'] . '">' . $lang['ICQ'] . '</a>';
		}
		else
		{
			$icq_status_img = '';
			$icq_img = '';
			$icq = '';
		}

На сколько я понимаю( в своих совсем детских в мускуле и пихипи знаниях) необходимо сделать код:
Если пользователь поста N
1 указал свой user_id_online то выводим....
2 не указал ..id.. то ни чего не выводим.

Так?

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 17:51
Lektor
Так ... исправил свой пост ... щас должно пахать :)

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 17:56
tavot
выдает ошибку:

Код: Выделить всё

Could not obtain post/user information.
DEBUG MODE
SQL Error : 1054 Unknown column 'u.user_id_online' in 'on clause'
Line : 483
File : viewtopic.php
=(

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 18:07
Lektor
Ну а куда делась колонка "user_id_online" из в phpbb_users? Тока шож была )

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 18:12
tavot
Колонка в таблице?
она там есть.....

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 18:25
Lektor
Приатач вьютопик.пхп
(код правильный, ошибки не вижу)

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 18:31
tavot
Вот вайлы.
там два файла
*4.php 1ый способ
*.php последний сопсоб.


в виевтоп4.php в первом запросе не ps.activiti , а просто activity .... это я пробовал методом научного тыка....

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 20:22
Lektor
покажите мне скриншот шо в бд есть столбец user_id_online ))

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 20:37
tavot
вот скрин =)

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 20:54
Gosudar
SQL Error : 1054 Unknown column 'u.user_id_online' in 'on clause'

Код: Выделить всё

#FIND
   FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt

#AFTER ADD
LEFT JOIN phpbb_ps_plr ps on ps.plrid = u.user_id_online
забыл phpbb_ps_plr ps, т.е.
FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt , phpbb_ps_plr ps

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 20:55
Lektor
не... там не нужно..
Файлы глянул все правильно только не activity, а - ps.activity (ошибка правда с этим не связана)

..ну хорошо а какая версия мускула?
Других вариантов нет.. проверь конфиг.пхп, точно форум юзает таблицу "forum3"?

Re: Необходима помощь Знатоков phpbb2 php и MySQL

Добавлено: 14.03.2009 21:05
Gosudar
блин, вьевтопик, вьевтопик4... всё попуталось :)
по последнему варианту:

вот это
FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt

попробуй заменить на
FROM " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt, " . USERS_TABLE . " u