Página 1 de 1

Codigo php para ultimos post en web externa

Publicado: 02 Feb 2010, 16:53
por wolfmoon
Buenas a todos, necesito una pequeña ayuda, tengo una web montada y un foro phpbb, el tema es que queria poner en el index de mi web un "div" con los ultimos post del foro. Buscando he encontrado este código:

Código: Seleccionar todo

<?php
//Lo primero es asignar un prefijo de tablas.
//Este prefijo es el que elegiste al instalar phpbb (por defecto el prefijo es "phpbb2_"
//Lo puedes mirar examinando la base de datos, las tablas de los foros comienzan por ese prefijo.
//por ejemplo imaginemos que mi prefijo es phpbb2

$prefijo="phpbb_";

//Conectamos con la base de datos:
//cambia los siguientes valores con los tuyos:

$host="xxxx";
$usr="xx_xxx";
$password="xxx";
$error_conexion="No se puede conectar a la base de datos. el error es el siguiente: ";
$conexion= mysql_connect ($host,$usr,$password) or die ($error_conexion . mysql_error());
//seleccionamos la base de datos sobre la que queremos operar:
$bdatos="xxx;

//se supone que hemos conectado a la base de datos. Ahora vamos a seleccionar los posts necesarios.
$sql="select post_id,poster_id,post_time,forum_id from ".$prefijo."posts order by post_time desc";
$consulta=mysql_db_query($bdatos,$sql);

//definimos cuantos posts queremos mostrar, en este caso 10:
$numeroposts=10;
//creamos una tabla HTML para meter los datos:
?>
<table>
		<tr>	
			<td colspan='4'>
				Últimos posts
			</td>
		</tr>
		
		<tr>
			<td>
				Foro
			</td>
			
			<td>
				Asunto
			</td>
			
			<td>
				Usuario
			</td>
			
			<td>
				Fecha
			</td>
		</tr>
	<?php
		//Bucle que crea una fila por cada post
		$contador=0;
		while(($fila=mysql_fetch_array($consulta)) && ($contador<$numeroposts))
		{
	?>
			<tr>
			<?php
			//primero seleccionamos el nombre del foro:
			$forum_id=$fila['forum_id'];
			$sql="select forum_name from ".$prefijo."forums where(forum_id='$forum_id')";
			$forum_name=mysql_db_query($bdatos,$sql);
			$forum_name=mysql_fetch_array($forum_name);
			$forum_name=$forum_name['forum_name'];
			?>
				<td style="width:500px; color:red">
					<?php
					echo $forum_name;
					?>
				</td>
				<?php
					//Seleccionamos el título del mensaje.
					$post_id=$fila['post_id'];
					$sql="select post_subject from ".$prefijo."posts_text where(post_id='$post_id')";
					$post_subject=mysql_db_query($bdatos,$sql);
					$post_subject=mysql_fetch_array($post_subject);
					$post_subject=$post_subject['post_subject'];
					?>
					<td style="width:500px; color:red">
					<?php
					echo $post_subject;
					?>
				</td>
				<?php
					//Seleccionamos el autor del mensaje.
					$poster_id=$fila['poster_id'];
					$sql="select username from ".$prefijo."users where(user_id='$poster_id')";
					$username=mysql_db_query($bdatos,$sql);
					$username=mysql_fetch_array($username);
					$username=$username['username'];
				?>
				<td>
					<?php
					echo $username;
					?>
				</td>
				<td>
				<?php
				//mostramos la fecha
				$fecha=$fila['post_time'];
				echo date('d/m/Y H:i',$fecha);
				?>
				</td>
			</tr>
		<?php
		$contador=$contador+1;
		}//final del bucle while
		?>
</table>
<?php
mysql_close($conexion);
?>
Os lo pongo con la etiquete code porque el pastebin no me deja. Bueno el problema es el siguiente, me va a las mil maravillas salvo el asunto o titulo del mensaje que me aparece vacio....

Gracias...

Re: Codigo php para ultimos post en web externa

Publicado: 02 Feb 2010, 17:10
por wolfmoon
Bueno pues parece que lo he solucionado, el trozo de codigo para el asunto o titulo del mensaje era este:

Código: Seleccionar todo

<?php
					//Seleccionamos el título del mensaje.
					$post_id=$fila['post_id'];
					$sql="select post_subject from ".$prefijo."posts_text where(post_id='$post_id')";
					$post_subject=mysql_db_query($bdatos,$sql);
					$post_subject=mysql_fetch_array($post_subject);
					$post_subject=$post_subject['post_subject'];
					?>
					<td style="width:500px; color:red">
					<?php
					echo $post_subject;
					?>
Asique abri la base de datos para intentar descubrir por mi mismo el fallo y lo encontre en esta linea:
$sql="select post_subject from ".$prefijo."posts_text where(post_id='$post_id')";

Hay que sustituirlo por
$sql="select post_subject from ".$prefijo."posts where(post_id='$post_id')";

Re: Codigo php para ultimos post en web externa

Publicado: 03 Feb 2010, 16:52
por wolfmoon
Siguiendo con este post, alguien sabria como puedo hacer para convertir los datos de los ultimos post en enlaces que lleven a ese mismo post en el foro?

Gracias.

Re: Codigo php para ultimos post en web externa

Publicado: 07 Feb 2010, 16:25
por wolfmoon
Nadie tiene alguna idea?

Re: Codigo php para ultimos post en web externa

Publicado: 07 Feb 2010, 16:47
por ahh72
holas, primero antes que nada esta prohibido hacer bump a los temas, esta en las normas del foro :lee

prueba con esto a ver si te ayuda con lo que deseas:

http://www.phpbb-es.com/foro/descarga-m ... 21378.html

saludos

Re: Codigo php para ultimos post en web externa

Publicado: 07 Feb 2010, 18:37
por wolfmoon
Es verdad, si que habia leido las normas pero no me acordaba de este punto asique mis disculpas.

Gracias ahh72 por la respuesta, lo echare un ojo, saludos.