Página 1 de 1

Error General SQL ERROR [ mysql4 ] [0]

Publicado: 08 Feb 2010, 22:15
por pibeloch
Hola, mi problema es que utilizo el directorio foro para el foro que ve todo el mundo y otro directorio donde hago todas las pruebas de las modificaciones que voy haciendo, el probema es que en el foro de las modificaciones me he dado cuenta que me sale el :

SQL ERROR [ mysql4 ]

[0]

Cuando intento acceder al foro sin estar registrado, los 2 foros van a la misma base de datos ya que cuando tengo el foro listo lo copio al directorio foro que es el que todos ven. Si estoy registrado y activo en el foro puedo entrar sin problemas al foro de pruebas pero si intento entrar como ususrio nuevo me sale el error antes mencionado. Todo lo demas funciona perfectamente. A que es debido este error??

Si copio el contenido en el foro que ven todos seguirá ese error o se debe solo a que no está ubicado en su directorio de origen??

Re: Error General SQL ERROR [ mysql4 ] [0]

Publicado: 09 Feb 2010, 05:23
por pibeloch
Hola de nuevo, me he dado cuenta que es culpa del codigo que he puesto para que aparezcan las 5 ultimas respuestas del foro.

Código: Seleccionar todo

// bloque últimos posts - mitch - phpBB-Es
    include($phpbb_root_path . 'includes/bbcode.' . $phpEx);

    function create_where_clauses($gen_id, $type)
    {
    global $db, $auth;

    $size_gen_id = sizeof($gen_id);

    switch($type)
    {
    case 'forum':
    $type = 'forum_id';
    break;
    case 'topic':
    $type = 'topic_id';
    break;
    default:
    trigger_error('No type defined');
    }

    $out_where = '';

    if ($size_gen_id > 0)
    {
    $auth_f_read = array_keys($auth->acl_getf('f_read', true));

    if ($type == 'topic_id')
    {
    $sql = 'SELECT topic_id FROM ' . TOPICS_TABLE . '
    WHERE ' . $db->sql_in_set('topic_id', $gen_id) . '
    AND ' . $db->sql_in_set('forum_id', $auth_f_read);

    $result = $db->sql_query($sql);

    while ($row = $db->sql_fetchrow($result))
    {
    $topic_id_list[] = $row['topic_id'];
    }

    unset($gen_id);

    $gen_id = $topic_id_list;
    $size_gen_id = sizeof($gen_id);
    }

    $j = 0;

    for ($i = 0; $i < $size_gen_id; $i++)
    {
    $id_check = (int) $gen_id[$i]; // If the type is topic, all checks have been made and the query can start to be built if( $type == 'topic_id' ) { $out_where .= ($j == 0) ? 'WHERE ' . $type . ' = ' . $id_check . ' ' : 'OR ' . $type . ' = ' . $id_check . ' '; } // If the type is forum, do the check to make sure the user has read permissions else if( $type == 'forum_id' && $auth->acl_get('f_read', $id_check) )
    {
    $out_where .= ($j == 0) ? 'WHERE ' . $type . ' = ' . $id_check . ' ' : 'OR ' . $type . ' = ' . $id_check . ' ';
    }

    $j++;
    }
    }

    if ($out_where == '' && $size_gen_id > 0)
    {
    trigger_error('A list of topics/forums has not been created');
    }

    return $out_where;
    }


    // Número de últimos posts a mostrar (editar el 5 si así lo deseas):
    $search_limit = 5;


    $posts_ary = array(
    'SELECT' => 'p.*, t.*, u.username, u.user_colour',

    'FROM' => array(
    POSTS_TABLE => 'p',
    ),

    'LEFT_JOIN' => array(
    array(
    'FROM' => array(USERS_TABLE => 'u'),
    'ON' => 'u.user_id = p.poster_id'
    ),
    array(
    'FROM' => array(TOPICS_TABLE => 't'),
    'ON' => 'p.topic_id = t.topic_id'
    ),
    ),

    'WHERE' => $db->sql_in_set('t.forum_id', array_keys($auth->acl_getf('f_read', true))) . '
    AND t.topic_status <> ' . ITEM_MOVED . '
    AND t.topic_approved = 1',

    'ORDER_BY' => 'p.post_id DESC',
    );

    $posts = $db->sql_build_query('SELECT', $posts_ary);

    $posts_result = $db->sql_query_limit($posts, $search_limit);

    while ($posts_row = $db->sql_fetchrow($posts_result))
    {
    $topic_title = $posts_row['topic_title'];
    $topic_title = censor_text($topic_title);
    $post_author = get_username_string('full', $posts_row['poster_id'], $posts_row['username'], $posts_row['user_colour']);
    $post_date = $user->format_date($posts_row['post_time']);
    $post_link = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "p=" . $posts_row['post_id'] . "#p" . $posts_row['post_id']);

    $post_text = nl2br($posts_row['post_text']);

    $bbcode = new bbcode(base64_encode($bbcode_bitfield));
    $bbcode->bbcode_second_pass($post_text, $posts_row['bbcode_uid'], $posts_row['bbcode_bitfield']);

    $post_text = smiley_text($post_text);

    $template->assign_block_vars('last_topics', array(
    'TOPIC_TITLE' => censor_text($topic_title),
    'POST_AUTHOR' => $post_author,
    'POST_DATE' => $post_date,
    'POST_LINK' => $post_link,
    'POST_TEXT' => censor_text($post_text),
    ));
    }

    // Fin bloque últimos posts - mitch - phpBB-Es
Lo he sacado de este foro y en apariencia todo funciona bien, menos el porder ingresar al foro sin estar registrado, ya que da el error antes mencionado. ¿ A que es debido ?

Muchas gracias

Re: Error General SQL ERROR [ mysql4 ] [0]

Publicado: 09 Feb 2010, 16:16
por mitch
Es muy raro el error... porque en otros sitios no sucede el error que comentas, estando como invitado o no.

Puedes pegar el error completo? me parece que el mensaje de error debiese ser un poco mas completo.

Re: Error General SQL ERROR [ mysql4 ] [0]

Publicado: 09 Feb 2010, 19:05
por pibeloch
Muchas gracias por respondes, si que es una cosa rara, pues una vez registrado funciona muy bien, es solo al entrar al foro de forma anonima.

El foro de error en cuestion es este: http://www.moteros.malparits.com/foro2

Re: Error General SQL ERROR [ mysql4 ] [0]

Publicado: 09 Feb 2010, 19:26
por pibeloch
Para recrear bien el problema hacer lo siguiente.

Si entramos sin estar reagistrados en http://www.moteros.malparits.com/foro2 el error salta enseguida.

Si entramos primero en http://www.moteros.malparits.com/foro y nos registramos y acto seguido entramos en http://www.moteros.malparits.com/foro2 todo funciona perfectamente.

Si una vez dentro del foro http://www.moteros.malparits.com/foro2 registrados nos desconectamos, volverá a salir el error.

Vamos que parece que sea que no puede acceder a la pagina de registro de usuario.

Re: Error General SQL ERROR [ mysql4 ] [0]

Publicado: 09 Feb 2010, 20:30
por pibeloch
Creo que lo he solucionado poniendo acceso al foro a los invitados, pero vamos, es un parche mal hecho.

Re: Error General SQL ERROR [ mysql4 ] [0]

Publicado: 09 Feb 2010, 21:49
por mitch
tal vez es porque los 2 foros estan enlazados en la misma BD... más no sabría decirte.

Si a mi no me dio problemas el código y a ti sí, pues solo me queda pensar eso.. un saludo

Re: Error General SQL ERROR [ mysql4 ] [0]

Publicado: 09 Feb 2010, 21:56
por pibeloch
Gracias por responder. No tendrá nada que ver que el código del AJAX CHAT que está delante del tuyo le afecte? y si es así, ¿ tendría arreglo ?

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
//-- mod : AJAX Chat ----------------------------------------------------
//-- add
include($phpbb_root_path . 'shout.' . $phpEx);
//-- fin mod : AJAX Chat ------------------------------------------------


display_forums('', $config['load_moderators']);
// bloque últimos posts - mitch - phpBB-Es
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);

function create_where_clauses($gen_id, $type)
{

Re: Error General SQL ERROR [ mysql4 ] [0]

Publicado: 28 Feb 2013, 17:08
por Sinfulweb
Yo tenía exactamente el mismo problema que pibeloch pero mi foro estaba instalado en un directorio unico con una base de datos exclusiva para el foro y me pasaba exactamente lo mismo, el foro se veia bien si el usuario estaba conectado pero para los invitados me salia el mismo error. Nunca pude solucionarlo y al final tuve que borrar el parche