Если грубо то надо всего лишь выбрать
Код: Выделить всё
SELECT post_id, poster_id FROM phpbb_post
Код: Выделить всё
UPDATE phpbb_topic SET topic_poster = poster_id WHERE post_id = topic_first_post_id;
Код: Выделить всё
SELECT post_id, poster_id FROM phpbb_post
Код: Выделить всё
UPDATE phpbb_topic SET topic_poster = poster_id WHERE post_id = topic_first_post_id;
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$sql = "SELECT pt.`topic_id`, pp.`poster_id`
FROM " . TOPICS_TABLE . " pt, " . POSTS_TABLE . " pp
WHERE pt.`topic_first_post_id` = pp.`post_id`
AND pt.`topic_poster` <> pp.`poster_id`;";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query information', '', __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$temp = $row['topic_id'];
$update_list[$temp] = $row['poster_id'];
}
unset($temp);
foreach($update_list as $topic_id=>$poster_id)
{
$sql = "UPDATE " . TOPICS_TABLE . "
SET `topic_poster` = " . $poster_id . "
WHERE `topic_id` = " . $topic_id . ";";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query information', '', __LINE__, __FILE__, $sql);
}
}
message_die(GENERAL_MESSAGE, 'OK');
?>
Код: Выделить всё
Warning: Invalid argument supplied for foreach() in /xxx/xxx/xxx/public_html/forum.vvvas.ru/resync_topic_starter.php on line 21
А не кажется вам ли что id в базе растёт паралельно дате ? (как не старайтся старше дедушки не станешь)VVVas писал(а):Выбираеться topic starter почему-то по наименьщему id поста, а не по дате поста.
У меня нет. Я же написал, я объединял два форума, а потом склеил темы.Vladson писал(а):А не кажется вам ли что id в базе растёт паралельно дате ?
Вот как раз и повод для доработки.Vladson писал(а):Этот мод требует доработки и недопустим для запуска на рабочем форуме