Foros del Web » Programando para Internet » PHP »

Ultimos post en web externa

Estas en el tema de Ultimos post en web externa en el foro de PHP en Foros del Web. Hola, que tal? Tengo un foro phpbb, y una web totalmente independiente del foro, la cuestión es que me gustaria mostrar en mi web los ...
  #1 (permalink)  
Antiguo 14/02/2010, 15:15
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 6 meses
Puntos: 2
Ultimos post en web externa

Hola, que tal? Tengo un foro phpbb, y una web totalmente independiente del foro, la cuestión es que me gustaria mostrar en mi web los ultimos post del foro. Para ello tengo este codigo:

Código PHP:
<?php

$prefijo
="phpbb_";

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

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

//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 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 título 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);
?>
Todo funciona a la perfeccion, pero me gustaria convertir el titulo del post en un enlace que llevara a ese mismo tema en el foro, he probado varias cosas pero no me sale, soy bastante nuevo en php.

Gracias.
  #2 (permalink)  
Antiguo 14/02/2010, 15:33
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Ultimos post en web externa

Qué has probado?
Sólo tienes que saber qué formato llevará la url del enlace. Por ejemplo: verpost.php?id=x
En el echo le pones el enlace y listo.
Mira qué enlace aparece cuando abres un post...
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 14/02/2010, 15:43
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 6 meses
Puntos: 2
Pues aparece el nombre del tema seguido de .html.

Yo lo he probado de esta manera:

Código PHP:
<?php
echo "<a href=\"foro/$post_subject.html\">".$post_subject."</a>"
?>
pero no me va... la url de mis temas son asi: foro/eltema-f9.html

Última edición por GatorV; 14/02/2010 a las 23:47
  #4 (permalink)  
Antiguo 15/02/2010, 11:04
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Ultimos post en web externa

Estás trabajando con URL amigables?
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #5 (permalink)  
Antiguo 17/02/2010, 16:50
Avatar de wolfmoon  
Fecha de Ingreso: octubre-2007
Mensajes: 189
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: Ultimos post en web externa

Si, en efecto, le tengo puesto el mod seo....

Un saludo.

Etiquetas: externa, post, ultimo
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 05:08.