Error al asignar Moderadores
Publicado: 17 Abr 2006, 16:09
Tienes un error como este...
phpBB escribió:Couldn't update private forum permissions
DEBUG MODE
SQL Error : 1064 You have an error in your SQL syntax near ' 1)' at line 2
INSERT INTO phpbb_auth_access (forum_id, group_id, auth_mod) VALUES (18, , 1)
Line : 390
File : admin_ug_auth.php[/quoteicy]
Según he leído ese problema a veces ocurre cuando se ha actualizado desde una versión bastante o muy antigua. Se soluciona así:
Crea un fichero con el WordPad o el Bloc de Notas que se llame, por ejemplo, parche.php y dentro copia y pega este código:Sube el archivo a la carpeta principal de tu foro y ve a esa dirección con tu navegador (por ejemplo el Explorer, yendo a http://www.tuweb.com/tuforo/parche.php ) y ejecuta ese parcheado.Código: Seleccionar todo
<?php //***** check users and user groups ****// define('IN_PHPBB', true); $phpbb_root_path = './'; include($phpbb_root_path . 'extension.inc'); include($phpbb_root_path . 'common.'.$phpEx); include($phpbb_root_path . 'includes/functions_search.'.$phpEx); // Start session management $userdata = session_pagestart($user_ip, PAGE_SEARCH); init_userprefs($userdata); // End session management $sql = "SELECT user_id, username FROM " . USERS_TABLE ." WHERE user_id > 0"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Could not obtain user list', '', __LINE__, __FILE__, $sql); } $liste =''; while ( $row = $db->sql_fetchrow($result) ) { $username = $row['username']; $user_id = $row['user_id']; $usergroup = ''; $sql1 = "SELECT ug.group_id FROM " . USER_GROUP_TABLE ." ug, ". GROUPS_TABLE. " g WHERE ug.user_id = $user_id AND ug.group_id = g.group_id AND g.group_single_user = 1 "; if ( ($result1 = $db->sql_query($sql1)) ) { $row1 = $db->sql_fetchrow($result1); $usergroup =( ( $row1['group_id'] != '' ) ? $row1['group_id'] : 'User has no user group'.$row1 ); } if (!($row1['group_id'] != '')) { $sql2 = "SELECT MAX(group_id) AS total FROM " . GROUPS_TABLE; if ( !($result2 = $db->sql_query($sql2)) ) { message_die(GENERAL_ERROR, 'Could not obtain next group_id information', '', __LINE__, __FILE__, $sq2l); } if ( !($row2 = $db->sql_fetchrow($result2)) ) { message_die(GENERAL_ERROR, 'Could not obtain next group_id information', '', __LINE__, __FILE__, $sql2); } $group_id = $row2['total'] + 1; $sql3 = "INSERT INTO " . GROUPS_TABLE . " (group_id, group_name, group_description, group_single_user, group_moderator) VALUES ($group_id, '', 'Personal User', 1, 0)"; if ( !($result3 = $db->sql_query($sql3, BEGIN_TRANSACTION)) ) { message_die(GENERAL_ERROR, 'Could not insert data into groups table', '', __LINE__, __FILE__, $sql3); } $sql4 = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending) VALUES ($user_id, $group_id, 0)"; if( !($result4 = $db->sql_query($sql4, END_TRANSACTION)) ) { message_die(GENERAL_ERROR, 'Could not insert data into user_group table', '', __LINE__, __FILE__, $sql4); } $usergroup = $usergroup.', adding user group '.$group_id; } $liste .= ( ( $liste != '' ) ? '<br> ' : '' ) . $username.' <b>'.$usergroup.'</b>'; } message_die(GENERAL_MESSAGE,'Users:<br>'.$liste); ?>
En teoría ya se debe ver todo bien.
No olvides eliminar el fichero parche.php una vez lo hayas aplicado con éxito.
INFO: Éste parche lo he encontrado en este mensaje del foro oficial.
Suerte.
Artículo de Batusai