File size: 2.18Kb
<?php
require( '../sys/inc/core.php' );
user_access( 'adm_forum_sinc', null, 'index.php?' . SID );
$set[ 'title' ] = 'Синхронизация таблиц форума';
get_header_admin();
if ( isset( $_GET[ 'ok' ] ) && isset( $_POST[ 'accept' ] ) ) {
$d_r = 0;
$d_t = 0;
$d_p = 0;
$q = db::query("SELECT `id`,`id_forum` FROM `forum_r`");
while ( $razd = $q->fetch_assoc() ) {
if ( db::count("SELECT COUNT(*) FROM `forum_f` WHERE `id` = '$razd[id_forum]'") == 0 ) {
db::query("DELETE FROM `forum_r` WHERE `id` = '$razd[id]' LIMIT 1");
$d_r++;
}
}
$q = db::query("SELECT `id`, `id_razdel`, `id_user` FROM `forum_t`");
while ( $them = $q->fetch_assoc() ) {
if ( db::count("SELECT COUNT(*) FROM `forum_r` WHERE `id` = '$them[id_razdel]'") == 0 || db::count("SELECT COUNT(*) FROM `user` WHERE `id` = '$them[id_user]'") == 0 ) {
db::query("DELETE FROM `forum_t` WHERE `id` = '$them[id]' LIMIT 1");
$d_t++;
}
}
$q = db::query("SELECT `id`, `id_them`, `id_user` FROM `forum_p`");
while ( $post = $q->fetch_assoc() ) {
if ( db::count("SELECT COUNT(*) FROM `forum_t` WHERE `id` = '$post[id_them]'") == 0 || db::count("SELECT COUNT(*) FROM `user` WHERE `id` = '$post[id_user]'") == 0 ) {
db::query("DELETE FROM `forum_p` WHERE `id` = '$post[id]' LIMIT 1");
$d_p++;
}
}
msg( "Удалено разделов: $d_r, тем: $d_t, постов: $d_p" );
}
echo "<form method=\"post\" action=\"?ok\">\n";
echo "<input value=\"Начать\" name='accept' type=\"submit\" />\n";
echo "</form>\n";
echo "* В зависимости от количества сообщений и тем, данное действие может занять длительное время.<br />\n";
echo "** Рекомендуется использовать только в случах расхождений счетчиков форума с реальными данными<br />\n";
if ( user_access( 'adm_panel_show' ) ) {
echo "<div class='foot'>\n";
echo "«<a href='/adm_panel/'>В админку</a><br />\n";
echo "</div>\n";
}
get_footer_admin();