Foros del Web » Programando para Internet » PHP »

Extraer de la DB, mostrar 5 ult mensajes del foro

Estas en el tema de Extraer de la DB, mostrar 5 ult mensajes del foro en el foro de PHP en Foros del Web. Hola gente... tengo un problema solucionable... tengo un foro, y quiero que en mi pagina principal, no la del foro... me muestre los ultimos 5 ...
  #1 (permalink)  
Antiguo 30/01/2008, 11:42
Avatar de ezequiel_pethead  
Fecha de Ingreso: abril-2007
Mensajes: 124
Antigüedad: 17 años
Puntos: 1
Exclamación Extraer de la DB, mostrar 5 ult mensajes del foro

Hola gente... tengo un problema solucionable... tengo un foro, y quiero que en mi pagina principal, no la del foro... me muestre los ultimos 5 mensajes escritos en el foro, actualmente uso esto:

Código PHP:
$consulta mysql_query("select * from e_foro_recientes LIMIT 5",$conexion); while($row mysql_fetch_array($consulta)){ echo "mensaje: "$row{"mensaje"}; } 
pero no me funca es que bueno, faltan completar algunas cosas como definir la conexion a la db, aqui les dejo el config y hacer la consulta a la db que se me complica un poco.

Código PHP:
# * Conexión a la base de datos
$conf = array() ;
$conf[0] = 'localhost' # Servidor
$conf[1] = 'root' # Usuario
$conf[2] = 'xxxxxxxxxx' # Contraseña
$conf[3] = 'eforo2' # Base de datos

$men_error '<p><b>Error</b></p><p>No se pudo conectar a la base de datos debido a:</p>' ;
$conectar = @mysql_connect($conf[0],$conf[1],$conf[2]) or exit($men_error.mysql_error()) ;
mysql_select_db($conf[3],$conectar) or exit($men_error.mysql_error()) ;
?> 
QUE DEBO AGREGAR AL SCRIPT PARA QUE ME FUNCIONE???
GRACIAS DE ANTEMANO!!!
__________________
Learning to fly...
  #2 (permalink)  
Antiguo 30/01/2008, 12:13
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

¿Y por qué dices que no funciona?
  #3 (permalink)  
Antiguo 30/01/2008, 13:13
Avatar de ezequiel_pethead  
Fecha de Ingreso: abril-2007
Mensajes: 124
Antigüedad: 17 años
Puntos: 1
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Me sale esto:
Código HTML:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\70\index.php on line 45

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\70\index.php on line 46
Modifique algunas lineas:
Código PHP:
<? $consulta mysql_query("select * from eforo_mensajes order by (id_temas) DESC LIMIT 5",$conexion); 
while(
$row mysql_fetch_array($consulta))
{ echo 
"mensaje: "$row{"id_ult_mensaje"}; } ?>
Ni idea...
__________________
Learning to fly...
  #4 (permalink)  
Antiguo 30/01/2008, 13:55
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Hola:

Una buena práctica siempre es separar la cadena de la consulta en una variable que puedas imprimir para verificar.

Código PHP:
$sql "select * from e_foro_recientes LIMIT 5";
$consulta mysql_query($sql ,$conexion) or die("Error :: <strong>$sql</strong>" mysql_error()); 
Ahí obtendrás el error que trae ese sql.

Saludos
  #5 (permalink)  
Antiguo 30/01/2008, 14:04
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Te está diciendo que el argumento que le pasas amysql_query no es un link a una BDD válido....

debería ser $conectar
  #6 (permalink)  
Antiguo 30/01/2008, 14:06
Avatar de totigo  
Fecha de Ingreso: marzo-2007
Ubicación: America
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 3
De acuerdo Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Tienes un error de variables en tu codigo, evidentemente estas confundiendo la variable $conexion con $conectar

Tu tienes:
Código PHP:
$conectar = @mysql_connect($conf[0],$conf[1],$conf[2]) or exit($men_error.mysql_error()) ; 
$consulta mysql_query("select * from e_foro_recientes LIMIT 5",$conexion); 

Acabo de realizar una prueba guardando tu mismo esquema y me funciona a la perfeccion! por favor revisa y compara!

Código PHP:
    $query="select * from eforo_mensajes order by (id_temas) DESC LIMIT 5";
    
$base=constBASEBD;
    
$usuario=constUSUARIOBD;
    
$contrasena=constCONTRASENABD;
    
$servidor=constSERVIDORBD;

    
$conexionmysql_connect($servidor,$usuario,$contrasena) or die('No pudo crear una conexi&oacute;n');
    
$db=mysql_select_db($base,$conexion);// establece la base de datos a consultar
    
if(($consulta=mysql_query($query,$conexion))!=FALSE){ // realiza la consulta
        
        
while($row mysql_fetch_array($consulta)) 
        { echo 
"mensaje: "$row{"id_ult_mensaje"} . "<br>"; }        
    }
    
mysql_close($conexion); 

Rodrigo Solorzano Pardo

Última edición por totigo; 30/01/2008 a las 16:25
  #7 (permalink)  
Antiguo 30/01/2008, 14:58
Avatar de ezequiel_pethead  
Fecha de Ingreso: abril-2007
Mensajes: 124
Antigüedad: 17 años
Puntos: 1
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Cita:
Iniciado por totigo Ver Mensaje
Tienes un error de variables en tu codigo, evidentemente estas confundiendo la variable $conexion con $conectar

Tu tienes:
Código PHP:
$conectar = @mysql_connect($conf[0],$conf[1],$conf[2]) or exit($men_error.mysql_error()) ; 
$consulta mysql_query("select * from e_foro_recientes LIMIT 5",$conexion); 

Acabo de realizar una prueba guardando tu mismo esquema y me funciona a la perfeccion! por favor rebisa y compara!

Código PHP:
    $query="select * from eforo_mensajes order by (id_temas) DESC LIMIT 5";
    
$base=constBASEBD;
    
$usuario=constUSUARIOBD;
    
$contrasena=constCONTRASENABD;
    
$servidor=constSERVIDORBD;

    
$conexionmysql_connect($servidor,$usuario,$contrasena) or die('No pudo crear una conexi&oacute;n');
    
$db=mysql_select_db($base,$conexion);// establece la base de datos a consultar
    
if(($consulta=mysql_query($query,$conexion))!=FALSE){ // realiza la consulta
        
        
while($row mysql_fetch_array($consulta)) 
        { echo 
"mensaje: "$row{"id_ult_mensaje"} . "<br>"; }        
    }
    
mysql_close($conexion); 

Rodrigo Solorzano Pardo
He probado con esto:
Código PHP:
<? $conectar = @mysql_connect($conf[0],$conf[1],$conf[2]) or exit($men_error.mysql_error()) ;  
$consulta mysql_query("select * from eforo_recientes LIMIT 5",$conexion); 
?>
y me tira esto:
Access denied for user 'ODBC'@'localhost' (using password: NO)
__________________
Learning to fly...
  #8 (permalink)  
Antiguo 30/01/2008, 15:35
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

No seria $conectar en vez de $conexion?
Al menos eso es lo que tienes en lo que dices que no te funciona.

$consulta = mysql_query("select * from eforo_recientes LIMIT 5",$conexion);

Saludos.
  #9 (permalink)  
Antiguo 30/01/2008, 15:36
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Justamente lo que te están diciendo es que no utilices $conexion (porque no existe), sino $conectar.
Código PHP:
$consulta mysql_query("select * from e_foro_recientes LIMIT 5",$conectar); 
  #10 (permalink)  
Antiguo 30/01/2008, 16:33
Avatar de ezequiel_pethead  
Fecha de Ingreso: abril-2007
Mensajes: 124
Antigüedad: 17 años
Puntos: 1
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Esto me funciona amigos!!!!
Código PHP:
<?
$server 
"localhost";
$user "root"
$pass "123456";
$name_db "eforo2";

$conexion mysql_connect($server,$user,$pass) or die("Error para conectarse con la base de datos "mysql_error());

mysql_select_db($name_db) or die("Error al seleccionar la base de datos ".mysql_error());


$consulta mysql_query("SELECT * FROM eforo_mensajes LIMIT 5",$conexion);
while(
$row mysql_fetch_array($consulta))
{
    echo 
"Ultimos mensajes: "$row["titulo"]; 
}
?>

sale perfecto pero con un unico error o no se como llamarlo... cuando imprime me muestra los dos mensajes pero con el encabezado del ECHO "Ultimos mensajes: " doble, asi:

Código HTML:
Ultimos mensajes: U2: Sunday bloody sundayUltimos mensajes: Quiet riot 1987
Que puede ser?
Y como puedo hacer para que pueda clickear sobre U2: Sunday bloody sunday y me lleve a ese post del foro?
Gracias :D
__________________
Learning to fly...

Última edición por ezequiel_pethead; 30/01/2008 a las 16:53
  #11 (permalink)  
Antiguo 30/01/2008, 16:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Es comportamiento natural, ya que estas poniendo el echo dentro del while, por eso se va a imprimir por cada loop del ciclo que haga.

Saludos.
  #12 (permalink)  
Antiguo 30/01/2008, 17:19
Avatar de ezequiel_pethead  
Fecha de Ingreso: abril-2007
Mensajes: 124
Antigüedad: 17 años
Puntos: 1
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Gracias GatorV comienzo a entender mejor como funciona...

Y como puedo hacer para que pueda clickear sobre U2: Sunday bloody sunday y me lleve a ese post del foro?
__________________
Learning to fly...
  #13 (permalink)  
Antiguo 30/01/2008, 17:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Agrega un link con la etiqueta <a> a tu dirección del foro y pasale como parámetro el ID.

Saludos.
  #14 (permalink)  
Antiguo 30/01/2008, 18:14
Avatar de ezequiel_pethead  
Fecha de Ingreso: abril-2007
Mensajes: 124
Antigüedad: 17 años
Puntos: 1
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

jejeje gatorv... podrias darme un ejemplo mas especifico? gracias!
__________________
Learning to fly...
  #15 (permalink)  
Antiguo 30/01/2008, 18:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

La etiqueta <a> se compone de un parámetro que es el href, el cual indica a que pagina se debe de ir ese texto, en el href debe de ir un URL, valido y si lo que quieres es que vaya a un thread especifico debes de pasarle el parámetro adecuado al software de tu foro, por ejemplo:
Código:
<a href="/mipagina/miforo/foro.php?id=1">Ir al tema 1</a>
Saludos.
  #16 (permalink)  
Antiguo 30/01/2008, 18:44
Avatar de ezequiel_pethead  
Fecha de Ingreso: abril-2007
Mensajes: 124
Antigüedad: 17 años
Puntos: 1
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Lo estoy chekeando, pero no le encuentro la vuelta.... la etiqueta <a> debe ir en el script desde donde llamo los ultimos 5 post? o en alguna parte del foro?
__________________
Learning to fly...
  #17 (permalink)  
Antiguo 30/01/2008, 18:52
Avatar de ezequiel_pethead  
Fecha de Ingreso: abril-2007
Mensajes: 124
Antigüedad: 17 años
Puntos: 1
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Esto me funciona excelente! gracias a ustedes que se coparon y me dieron una mano para lograrlo
Código PHP:
<?
$server 
"localhost";
$user "root"
$pass "123456";
$name_db "eforo2";

$conexion mysql_connect($server,$user,$pass) or die("Error para conectarse con la base de datos "mysql_error());

mysql_select_db($name_db) or die("Error al seleccionar la base de datos ".mysql_error());


$consulta mysql_query("SELECT * FROM eforo_mensajes order by (id) DESC LIMIT 20",$conexion);
while(
$row mysql_fetch_array($consulta))
{
    echo 
" | "$row["titulo"]; 
}
?>
Pero ahora bien, el problema me surge con lo ya comentado a GatorV, no encuentro la manera de hacer que se cree un enlace para clickear y que me lleve a ese post directamente...

Ejemplos please???
lo debo de poner al codigo dentro del cod php de arriba?
__________________
Learning to fly...

Última edición por ezequiel_pethead; 30/01/2008 a las 19:48
  #18 (permalink)  
Antiguo 06/02/2008, 10:13
Avatar de totigo  
Fecha de Ingreso: marzo-2007
Ubicación: America
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: Extraer de la DB, mostrar 5 ult mensajes del foro

Simplemente dentro del while colocas :

Código PHP:
echo " | " "<a href="mipagina.php">" $row["titulo"] . "</a>"
Hecho!
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 09:21.