Вытащить sql запрос из файла

Идеи для расширения функциональности phpBB 2.0.x
Аватара пользователя
TjRadenot
phpBB 1.4.3
Сообщения: 92
Стаж: 18 лет 11 месяцев
Откуда: Москва

Вытащить sql запрос из файла

Сообщение TjRadenot »

Вот файл (reputation_mod_install_users_v100.php) - это из мода Users Reputations System v.1.0.0.:

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

<?php
//copyright © 2004 IdleVoid & brustverein
//copyright © 2003 Volodymy (CLowN) Skoryk
//this update template copyright © 2006 Anton Granik

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'reputation_common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

if( !$userdata['session_logged_in'] )
{
   $header_location = ( @preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: ';
   header($header_location . append_sid("login.$phpEx?redirect=reputation_mod_install_users_v100.$phpEx", true));
   exit;
}

if( $userdata['user_level'] != ADMIN )
{
   message_die(GENERAL_MESSAGE, 'You are not authorised to access this page');
}

$page_title = 'Setting the users reputations for Reputation Mod v.1.0.0 by Anton Granik';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

echo '<table width="100%" cellspacing="1" cellpadding="2" border="0" class="forumline">';
echo '<tr><th>Setting the users reputations for Reputation Mod v.1.0.0 by Anton Granik</th></tr><tr><td><span class="genmed"><ul type="circle">';

$sql = "SELECT * FROM " . USERS_TABLE . "
		ORDER BY user_id";
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, "Could not obtain reputation data for this user", '', __LINE__, __FILE__, $sql);
}
while ($row = $db->sql_fetchrow($result))
{
	echo "<strong>" . $row['username'] . "</strong>";
	$dif = time() - $row['user_regdate'];
	$a = ($dif/60/60/24) / $rep_config['days_to_earn'];
	$b = $row['user_posts'] / $rep_config['posts_to_earn'];
	$c = $a + $b;
	echo " (" . round($c,4) . "), ";
	$sql = "UPDATE " . USERS_TABLE . "
			SET user_reputation = $c, user_rep_last_time = " . time() . "
			WHERE user_id = " . $row['user_id'];
	if ( !$db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, "Could not update reputation for the user", '', __LINE__, __FILE__, $sql);
	}
}

if ($errors == 0)
echo '<tr><th>Finish</th></tr><tr><td><span class="med">Installation is now finished. Please be sure to <strong>delete these files</strong> now: <ul><li>reputation_mod_db_install_v100.php,</li><li>reputation_mod_users_install_v100.php</li></ul></span></td></tr></table>';

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
Аватара пользователя
avm
Former team member
Сообщения: 582
Стаж: 20 лет 5 месяцев
Откуда: Москва

Сообщение avm »

и что?
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Аватара пользователя
AlexWB
phpBB 1.4.4
Сообщения: 199
Стаж: 20 лет 5 месяцев
Откуда: Kiev.UA

Сообщение AlexWB »

- Петка, прибор!?
- "38"!
- Что "38"?
- А что "прибор"?

TjRadenot
можно конечно попытаться угадать, что нужет текст SQL запроса
но вот угадать какого из двух - даже самые гуровые гуру не в силах наверно

и встречный вопрос:
что вы с ним собираетесь делать, если сами не в состоянии понять, сколько и где в этом листинге "спрятано" sql запросов?
Аватара пользователя
TjRadenot
phpBB 1.4.3
Сообщения: 92
Стаж: 18 лет 11 месяцев
Откуда: Москва

Сообщение TjRadenot »

Вот вроде они:

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

$sql = "SELECT * FROM " . USERS_TABLE . " 
      ORDER BY user_id"; 

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

  $sql = "UPDATE " . USERS_TABLE . " 
         SET user_reputation = $c, user_rep_last_time = " . time() . " 
         WHERE user_id = " . $row['user_id']; 
Вопрос: Как им придать такой вид чтобы можно было поместить /root/install/schemas/*.sql ?
:)
Аватара пользователя
avm
Former team member
Сообщения: 582
Стаж: 20 лет 5 месяцев
Откуда: Москва

Сообщение avm »

ну насмешили...

зачем вам тот SELECT в schemas ? :lol:

вы хоть понимаете назначение этих sql файлов?
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 3 месяца
Поблагодарили: 2 раза

Сообщение Xpert »

Имхо все решаемо, надо только понять алгоритм расчета репутации. Подозреваю что на этапе установки мода на чистый форум она у всех будет 0...
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
TjRadenot
phpBB 1.4.3
Сообщения: 92
Стаж: 18 лет 11 месяцев
Откуда: Москва

Сообщение TjRadenot »

avm писал(а):зачем вам тот SELECT в schemas ?
А куда тогда? Без запуска этого файла мод не работает к сожалению! Что можете посоветовать по этому поводу?

Добавлено спустя 11 минут 49 секунд:

To Xpert
Подозреваю что на этапе установки мода на чистый форум она у всех будет 0...
Да так и есть. Необходимо создать несколько сообщений на форуме (количество сообщений устанавливается в админ. разделе) и только после этого можно раздавать "репуты" :D

И по-моему количество отданной "репутации" вычитается из количества ВАШИХ сообщений. Вроде бы так.... :D
Аватара пользователя
avm
Former team member
Сообщения: 582
Стаж: 20 лет 5 месяцев
Откуда: Москва

Сообщение avm »

TjRadenot писал(а):А куда тогда? Без запуска этого файла мод не работает к сожалению! Что можете посоветовать по этому поводу?
попробуйте так:

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

UPDATE phpbb_users SET user_reputation = 0, user_rep_last_time = NOW()
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Аватара пользователя
TjRadenot
phpBB 1.4.3
Сообщения: 92
Стаж: 18 лет 11 месяцев
Откуда: Москва

Сообщение TjRadenot »

avm писал(а):попробуйте так:

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

UPDATE phpbb_users SET user_reputation = 0, user_rep_last_time = NOW()
Спасибо! все получилось... :P

Добавлено спустя 1 час 37 минут 34 секунды:
И по-моему количество отданной "репутации" вычитается из количества ВАШИХ сообщений.
Я ошибся :oops: Система "репутации" не влияет на кол-во сообщений! :D
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 3 месяца
Поблагодарили: 2 раза

Сообщение Xpert »

avm
NOW() вроде ведь не работает под MySQL 3.x.x или я ошибаюсь?
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
avm
Former team member
Сообщения: 582
Стаж: 20 лет 5 месяцев
Откуда: Москва

Сообщение avm »

Xpert, не помню уже...
я ответил лишь для того чтобы человек понял (надеюсь так оно и есть) что в schemas SELECT'ы нафик не нужны... при ответе мне лень было задумываться над этим вопросом, если честно... :wink:
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948

Вернуться в «Запросы модов для phpBB 2.0.x»