Allora ti conviene creare una tabella temporanea, da phpmyadmin copia la tabella avphpbb_topics in avphpbb_topics_tmp (solo struttura).
Poi fai l'INSERT del file che hai. Devi modificare il nome della tabella
Codice: Seleziona tutto
INSERT INTO `avphpbb_topics_tmp` (`topic_id`, `topic_desc`) VALUES
........................
Dovresti ottenere una tabella che contiene topic_id e topic_desc.
Se tutto va bene poi vediamo come fare il resto.
EDIT:
se hai creato la tabella avphpbb_topics_tmp puoi estrarre i dati e fare automaticamente l'UPDATE con un file che chiamerai mod_topic_desc.php, da mettere nella root del forum, questo il contenuto
Codice: Seleziona tutto
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$primo = $_GET['a'];
$ultimo = $_GET['b'];
if ($primo == ''){$primo = '0';}
if ($ultimo == ''){$ultimo = '100';}
$sql = @mysql_query("SELECT * from avphpbb_topics_tmp LIMIT $primo,$ultimo" );
if (!$sql) exit('<p>errore query 001: ' . mysql_error() . '</p>');
while ($row = mysql_fetch_array($sql))
{
$id_cor = $row['topic_id'];
$title_cor = str_replace("'", "''",$row['topic_title']);
$sql1 = "UPDATE " . TOPICS_TABLE . " SET topic_desc = '" . $title_cor . "' WHERE topic_id =" . $id_cor ;
if (mysql_query($sql1)) {
echo "<p>Il record <b>" . $id . "</b> è stato aggiornato</p>" ;
} else {
echo "errore : " . $sql1 . "<br />" ;
}
}
?>
Nel lanciare il programma puoi indicare i valori a e b che sono il primo record e il numero dei record da elaborare, questo per evitare di lanciare un ciclo troppo grosso.
In pratica devi inserire l'url
mod_topic_desc.php?a=0&b=100
Significa che le operazioni di UPDATE cominceranno dal record '0' (il primo) e comprenderà 100 records.
Se funziona fai i rimanenti scegliendo il primo record e il numero dei record. Si parte con 100, poi si prova con 1000 e se la query non è troppo lunga si può aumentare il numero dei records da elaborare.
In sostanza, la query SELECT estrae il topic_id e il topic_desc dalla tabella avphpbb_topics_tmp e per ogni record viene eseguito l'UPDATE nella tabella avphpbb_topics.
La parte di codice
$title_cor = str_replace("'", "''",$row['topic_title']);
serve a sostituire gli apici che eventualmente sono presenti nella stringa, cosa che darebbe un errore nella query UPDATE.