Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

phpbb2 post en php

Estas en el tema de phpbb2 post en php en el foro de Sistemas de gestión de contenidos en Foros del Web. Hola tengo el siguiente código que me muestra los últimos 3 post de mi foro phpbb2, pero me gustaría que solo mostrara de un tópico ...
  #1 (permalink)  
Antiguo 19/05/2006, 17:15
 
Fecha de Ingreso: junio-2004
Mensajes: 45
Antigüedad: 20 años, 5 meses
Puntos: 0
phpbb2 post en php

Hola tengo el siguiente código que me muestra los últimos 3 post de mi foro phpbb2, pero me gustaría que solo mostrara de un tópico en especial.

Cita:
<?php

//Edita lo siguiente
$folder = "foro"; // Carpeta del foro
$messages = "3"; // N&uacute;mero de mensajes a buscar

//No edites lo siguiente, a menos que sepas como hacerlo
include($folder . "/config.php");
$conn = mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$conn);
$sql = "SELECT * FROM " . $table_prefix . "posts ORDER BY post_time DESC";
$posts = mysql_query($sql,$conn);
$round = 0;
while( $row = mysql_fetch_array($posts) )
{
if( $round <= $messages )
{
//Forum name
$forum_sql = "SELECT forum_name FROM " . $table_prefix . "forums WHERE
forum_id=" . $row["forum_id"];
$forum = mysql_query($forum_sql,$conn);
$forum_result = mysql_fetch_array($forum);
$forum_name = $forum_result["forum_name"];
//User name
$user_sql = "SELECT username FROM " . $table_prefix . "users WHERE
user_id=" . $row["poster_id"];
$user = mysql_query($user_sql,$conn);
$user_result = mysql_fetch_array($user);
$user_name = $user_result["username"];
//Topic name
$topic_sql = "SELECT topic_title FROM " . $table_prefix . "topics
WHERE topic_id=" . $row["topic_id"];
$topic = mysql_query($topic_sql,$conn);
$topic_result = mysql_fetch_array($topic);
$topic_name = $topic_result["topic_title"];
//Dumping /viewforum.php?f=9

echo '<a href="' . $folder . '/viewtopic.php?t=' . $row["topic_id"] . '">' . $topic_name . "</a><br>\n";
echo 'Publicado en <a href="' . $folder . '/viewforum.php?f=' . $row["forum_id"] . '">' . $forum_name . '</a><br>' . "\n";
if( $round < $messages )
{
echo "__________________<br>\n";
}
$round++;
}
}
mysql_close($conn);
?>
Quiero que solo muestre los post de las encuestas, que en mi caso sería
http://www.muestrate.cl/foro/viewforum.php?f=9
__________________
www.muestrate.cl, noticias y actualidad de Chillán, Chile
  #2 (permalink)  
Antiguo 19/05/2006, 17:46
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 20 años, 4 meses
Puntos: 76
Cambia esto:

Cita:
$sql = "SELECT * FROM " . $table_prefix . "posts ORDER BY post_time DESC";
Por esto otro:

Cita:
$sql = "SELECT * FROM " . $table_prefix . "posts WHERE forum_id='9' ORDER BY post_time DESC";
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #3 (permalink)  
Antiguo 19/05/2006, 17:50
 
Fecha de Ingreso: junio-2004
Mensajes: 45
Antigüedad: 20 años, 5 meses
Puntos: 0
Muuuuuuuuuuuuuuchas gracias.
Pero lo que no entiendo es porque me aparecen duplicados los titulares. mira estoy probando el código aquí.
http://www.muestrate.cl/video.php
__________________
www.muestrate.cl, noticias y actualidad de Chillán, Chile
  #4 (permalink)  
Antiguo 21/05/2006, 08:03
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 20 años, 4 meses
Puntos: 76
Si los dos últimos mensajes corresponden a un mismo tema, éste aparecerá dos veces, una por cada mensaje.

Fíjate cómo uso yo lo de los últimos mensajes. Si te fijas, en este momento los dos últimos mensajes corresponden al mismo tema, con lo cual se podría decir que el tema aparece repetido. Pero al citar qué usuario ha publicado el mensaje, queda claro que no se trata de algo duplicado.

El código usado para la lista de últimos mensajes es éste, basado en esto:

Código PHP:
<p style="text-align: center; font-size: 12pt; font-weight: bold; background: #555; padding: 10px; margin: 0; color: white">&Uacute;ltimos mensajes del foro</p>
<ul>
<? 
 
// Últimos mensajes publicados en foros phpBB2. 
// Creado por XeRGio y modificado por Defero.tk
// www.xergio.net
// 
// Edita lo que viene a continuación. Cambia solo lo que hay entre comillas "": 
 
$directorio "./forum"//Carpeta donde esta situadoel foro. 
$mostrar "2"//Número de mensajes a mostrar. 
$caracteres "20"//Caracteres que se mostrarán de cada línea. 
 
// Lo que viene ahora no lo toques para nada!!! a no ser que sepas de qué va el tema... 
 
include("$directorio/config.php"); 

$conexion mysql_connect($dbhost,$dbuser,$dbpasswd); 
mysql_select_db($dbname,$conexion); 
$consulta "select * from ".$table_prefix"posts WHERE forum_id='9'  order by post_time desc" 
$resultado mysql_query($consulta); 
$i 0
while (
$rows mysql_fetch_array($resultado)) { 
if (
$i <= $mostrar) { 
$consulta1 "select * from ".$table_prefix."forums where forum_id='$rows[forum_id]'"
$resultado1 mysql_query($consulta1); 
$datosf mysql_fetch_array($resultado1); 
$consulta2 "select * from ".$table_prefix."users where user_id='$rows[poster_id]'"
$resultado2 mysql_query($consulta2); 
$datosu mysql_fetch_array($resultado2); 
$consulta3 "select * from ".$table_prefix."topics where topic_id='$rows[topic_id]'"
$resultado3 mysql_query($consulta3); 
$datost mysql_fetch_array($resultado3); 
// Añadido por Defero.tk para sacar el ID del mensaje
$consulta4 "select * from ".$table_prefix."posts_text where post_id='$rows[post_id]'"
$resultado4 mysql_query($consulta4); 
$datosx mysql_fetch_array($resultado4); 

if (
strlen($datost[topic_title]) > $caracteres) { 
$datost[topic_title] = substr($datost[topic_title],0,20)."..."


{
$datosx[post_text] = preg_replace("(\[.+?\])is",'',$datosx[post_text]); 
}



$datosx[post_text] = substr($datosx[post_text],0,150)."..."


echo 
"<li><a href=\"./forum/profile.php?mode=viewprofile&amp;u=$datosu[user_id]\">$datosu[username]</a> ha respondido en el tema \"<a href=\"$directorio/viewtopic.php?t=$rows[topic_id]\"  title=\"$datosx[post_text]\"><b>$datost[topic_title]</b></a>\" del subforo <a href=\"./forum/viewforum.php?f=$datosf[forum_id]\">$datosf[forum_name]</a></li>"
$i++; 


 
mysql_free_result($resultado); 
mysql_close($conexion); 
?>
</ul>
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable

Última edición por -Defero-; 21/05/2006 a las 08:14
  #5 (permalink)  
Antiguo 21/05/2006, 09:52
 
Fecha de Ingreso: junio-2004
Mensajes: 45
Antigüedad: 20 años, 5 meses
Puntos: 0
gracias por el código, lo usaré.
__________________
www.muestrate.cl, noticias y actualidad de Chillán, Chile
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:10.