1

Тема: Скрипт для удаления тем без сообщений на vBulletin

Небольшой скрипт сделан в связи с тем, чтов  админке vBulletin нету такого пункта, как "удаления тем без сообщений", а есть "удаление сообщений без тем", Сделан в связи с неудачным соединением двух форумов скриптом "vbimpex-master". Создались пустые темы, в которых есть инфа о последнем сообщении.
А первое сообщение находится в другой теме, как и все посты пустой темы.
Найти взаимосвязь "ушедших в другую тему" постов и родной темы я не смог, сделал удалятор таких пустых тем.
Если первый пост в другой теме - удаляю тему.

  <html>
<head>
<title>УДАЛЯТОР  тем без сообщений</title>
</head>
<body>
  
<?php
$file_ini = file("boris2.ini");
$host="localhost";
$user=trim($file_ini[0]);
$pwd=trim($file_ini[1]);
$database_name=trim($file_ini[2]);
$db=mysql_connect($host,$user,$pwd);
echo "<br>   {$database_name} - {$user} - {$pwd} <br>";
mysql_select_db($database_name,$db); 

mysql_query("SET character_set_client='utf8'");
mysql_query("SET character_set_connection='cp1251'");
mysql_query("SET character_set_results='cp1251'");

$allthread = mysql_query("SELECT * FROM thread")   or die("Invalid query: " . mysql_error());
  
 while ($row = mysql_fetch_assoc($allthread)) {       // все темы
  $firstpost =  $row['firstpostid'];
    $threadid =  $row['threadid'];
  $findpost  = mysql_query("SELECT * FROM post WHERE postid = '$firstpost' ");   // нашли последний пост в одной теме.
  //print '<br>Для ' . $lastpost .' найдено '.mysql_num_rows($findpost).' записей ';
  $post  = mysql_fetch_array($findpost);
  print  $threadid .' --- '.   $post[threadid];    // id темы и id темы в первом посте этой темы.
  if  ($threadid <>   $post[threadid] ) {
  echo " (удалить)" ;
 $del =  mysql_query("DELETE FROM thread  WHERE  threadid ='$threadid'");
  }
  echo '<br>'  ;
}
  
echo "<br>Конец! "; 
?>

</body>
</html>

Поделиться