Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Error SQL con ultimos mensajes en pagina externa..Tema Solucionado

Foros donde podréis dejar vuestras dudas sobre phpBB 3.0.x
Cerrado

0
No hay votos
 
Votos totales: 0

EmmaX
Usuario/a
Mensajes: 86
Registrado: 08 May 2011, 19:50
Edad: 33

Error SQL con ultimos mensajes en pagina externa..

#1

Mensaje por EmmaX »

Buenas a todos, les comento mi problema..

resulta que he usado uno de estos codigos https://blog.phpbb.com/2009/11/09/how-t ... nal-pages/

especificamente el tercero: EXAMPLE 3: Display posts from specified topics

esto lo he usado para obtener el texto del contenido de 5 temas de un foro especifico, para mostrarlo en una pagina externa..

El codigo es el siguiente:

Código: Seleccionar todo

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');
}

// Set $out_where to nothing, this will be used of the gen_id
// size is empty, in other words "grab from anywhere" with
// no restrictions
$out_where = '';

if ($size_gen_id > 0)
{
// Get a list of all forums the user has permissions to read
$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))
{
// Create an array with all acceptable topic ids
$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;
}







$search_limit = 5;

$forum_id = array(31);
$forum_id_where = create_where_clauses($forum_id, 'forum');

$topic_id = array(5099,5093,5096,5097,5098);
$topic_id_where = create_where_clauses($topic_id, 'topic');

$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' => str_replace( array('WHERE ', 'topic_id'), array('', 't.topic_id'), $topic_id_where) . '
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))
{
$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('animelista', array(
'POST_TEXT' => censor_text($post_text),
));
}
La pagina externa es esta: http://www.itaka-fan.net/Lista-Anime (Perdon si no esta permitido colocar esta clase de links)

Esto me funciona perfecto en Google Chrome, pero en los demas navegadores como Firefox, Opera e IE me tira el siguiente error:
Error General
SQL ERROR [ mysql4 ]

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND t.topic_status <> 2 AND t.topic_approved = 1 ORDER BY p.post_id DESC LIMIT ' at line 2 [1064]

Ocurrió un error SQL mientras recuperaba esta página. Por favor contacta con La Administración del Sitio si el problema persiste.
creo que hace referencia a esta linea que se encuentra dentro del codigo anterior

Código: Seleccionar todo

'WHERE' => str_replace( array('WHERE ', 'topic_id'), array('', 't.topic_id'), $topic_id_where) . '
AND t.topic_status <> ' . ITEM_MOVED . '
AND t.topic_approved = 1',

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

en mi portal tambien he puesto el mismo codigo pero apuntando a un foro diferente y tampoco me funciona, asi que lo he quitado. Estoy casi seguro que el problema es ese estracto de codigo anterior, porque he usado otros codigos para mostrar los ultimos temas, pero ninguno posee ese estracto en su interior y me funcionan bien en todos los navegadores.. pueden verlos al final de mi portal..

Espero alguien tenga alguna idea de como solucionarlo, desde ya gracias por leer
Datos de Soporte | Mostrar
URL: http://www.anime-backup.com
Versión phpBB: phpBB3 3.0.12
MODs Instalados:
[BETA] phpBB SEO Premod v 3.0.12
GYM SItemaps & RSS,
phpBB SEO Zero duplicate,
phpBB SEO No duplicate,
phpBB SEO Related Topics,
phpBB SEO Dynamic Meta tags
phpBB SEO Optimal titles
Automod 1.0.2
UMIL 1.0.5
[MODDB] Auto Group 1.0.2
[MODDB] Board3 Portal 2.0.2
[MODDB] phpBB jQuery Base 1.0.1
[MODDB] Universal No Avatar 1.0.0
[MODDB] Convert quoted images to url 1.0.2
[MODDB] Facebook Profile Link 1.0.1
[MODDB] Twitter Profile Link 1.0.6
[MODDB] Contact board administration 1.0.10
[MODDB] Prime Trash Bin 1.1.8
[MODDB] Me/we/you/us filter 1.0.4d
[MODDB] NV User Topics1.0.4.1
[MODDB] ReIMG Image Resizer 2.0.1
[MODDB] Advanced BBCode Box 3.0.13 (desactivado)
[MODDB] Country Flags User Edition 1.2.1
[MODDB] Multi Smile 1.0.1
[RC] Reputation System 0.7.0
[RC] phpBB3 Social Network 0.7.2
[DEV] AOS Notifications 0.0.8
[RC] AOS Tag User BBCode 1.0.0
[RC] Simple PM Quick Reply 1.1.1
[BETA] Medal System MOD 1.0.1
[N/A] ERS Nuevos Mensajes 1.0.1
[RC] cBB Blockgets v1.0.4
[RC] cBB Chat 1.0.1
[RC] cBB QuickMod v1.0.3
[AddOn] cBB Chat AddOn v1.0.0(cBB)
[Plugin] Cookie Law v1.0.0 (cBB)
[Plugin] phpBB SEO v1.0.0 (cBB)
Popup por defecto para MP viewtopic.php?t=39904
Citar en Respuesta Rapida http://phpbb.alorse.net/viewtopic.php?f=13&t=223
Plantilla(s) usada(s): Prosilver
Servidor: Linux
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Usuario de pruebas:
Nick: test-user
Pass: test-user

EmmaX
Usuario/a
Mensajes: 86
Registrado: 08 May 2011, 19:50
Edad: 33

Re: Error SQL con ultimos mensajes en pagina externa..  Tema Solucionado

#2

Mensaje por EmmaX »

Esto ya es costumbre, y encuentro mi error luego de hacer el post para pedir ayuda.. resulta que leyendo bien, es el segundo y no el tercero, el codigo que estaba precisando. Es decir, este: Example 2: Display first post from the last five topics

en este caso, ya que creo esta un poco confusa la definicion de post ya que facilmente se podria decir que ese codigo mostraria el primer mensaje de los ultimos 5 temas, pero lo que hace es mostrar los 5 temas en concreto

yo estaba usando el codigo del tercer ejemplo: Example 3: Display posts from specified topics, el cual si muestra los mensajes de los temas que se seleccionen..

Pero bueno, espero el tema le sirva a alguien, he visto este problema por varios lugares pero nunca se daba una solucion concreta. saludos
Última edición por EmmaX el 01 Abr 2013, 10:50, editado 1 vez en total.
Datos de Soporte | Mostrar
URL: http://www.anime-backup.com
Versión phpBB: phpBB3 3.0.12
MODs Instalados:
[BETA] phpBB SEO Premod v 3.0.12
GYM SItemaps & RSS,
phpBB SEO Zero duplicate,
phpBB SEO No duplicate,
phpBB SEO Related Topics,
phpBB SEO Dynamic Meta tags
phpBB SEO Optimal titles
Automod 1.0.2
UMIL 1.0.5
[MODDB] Auto Group 1.0.2
[MODDB] Board3 Portal 2.0.2
[MODDB] phpBB jQuery Base 1.0.1
[MODDB] Universal No Avatar 1.0.0
[MODDB] Convert quoted images to url 1.0.2
[MODDB] Facebook Profile Link 1.0.1
[MODDB] Twitter Profile Link 1.0.6
[MODDB] Contact board administration 1.0.10
[MODDB] Prime Trash Bin 1.1.8
[MODDB] Me/we/you/us filter 1.0.4d
[MODDB] NV User Topics1.0.4.1
[MODDB] ReIMG Image Resizer 2.0.1
[MODDB] Advanced BBCode Box 3.0.13 (desactivado)
[MODDB] Country Flags User Edition 1.2.1
[MODDB] Multi Smile 1.0.1
[RC] Reputation System 0.7.0
[RC] phpBB3 Social Network 0.7.2
[DEV] AOS Notifications 0.0.8
[RC] AOS Tag User BBCode 1.0.0
[RC] Simple PM Quick Reply 1.1.1
[BETA] Medal System MOD 1.0.1
[N/A] ERS Nuevos Mensajes 1.0.1
[RC] cBB Blockgets v1.0.4
[RC] cBB Chat 1.0.1
[RC] cBB QuickMod v1.0.3
[AddOn] cBB Chat AddOn v1.0.0(cBB)
[Plugin] Cookie Law v1.0.0 (cBB)
[Plugin] phpBB SEO v1.0.0 (cBB)
Popup por defecto para MP viewtopic.php?t=39904
Citar en Respuesta Rapida http://phpbb.alorse.net/viewtopic.php?f=13&t=223
Plantilla(s) usada(s): Prosilver
Servidor: Linux
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Usuario de pruebas:
Nick: test-user
Pass: test-user

Cerrado

Volver a “Foros de Soporte 3.0.x”