Foros del Web » Programando para Internet » PHP »

query de query

Estas en el tema de query de query en el foro de PHP en Foros del Web. Hola.... Bueno, lo primero decir que me gusta mucho la pag, y que he aprendido bastante gracias a vosotros, aunque aún soy un novato :( ...
  #1 (permalink)  
Antiguo 11/02/2008, 16:49
 
Fecha de Ingreso: febrero-2008
Mensajes: 6
Antigüedad: 16 años, 2 meses
Puntos: 0
query de query

Hola.... Bueno, lo primero decir que me gusta mucho la pag, y que he aprendido bastante gracias a vosotros, aunque aún soy un novato :(

Bueno, os explico el tema.

tengo una base de datos en mysql, con la tabla noticias; en ella estan los campos: titulo, cuerpo e id
el id es autonumerico y está como clave primaria

Ahora biene lo que no se como hacer.
Quiero que en un query me salga la 2a noticia mas antigua.

<?PHP
include("conectardb.php");

$query = mysql_query("SELECT * FROM noticias ORDER BY id DESC LIMIT 1");

while($ver = mysql_fetch_array($query)) {
$titulo = $ver['titulo'];
$cuerpo = $ver['cuerpo'];
?>
<? echo "$titulo"; ?>

<?php
}
?>

esto es lo que tengo para que me muestre la ultima noticia, pero nose como hacer para que me muestre unicamente la penultima.

Muchisimas gracias y repito que soy novato asi que no me avasalleis si lo veis muy facil :P

PD: en SQL es muy facil de hacer con el TOP1 y subselect pero el MYSQL mio no soporta ni TOPS ni subselect
  #2 (permalink)  
Antiguo 11/02/2008, 17:02
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: query de query

Hola creo que puedes usar el MAX para mysql, puedes buscar algo en internet sobre eso.

salu2
__________________
"Eres grande por que caminas entre gigantes"
  #3 (permalink)  
Antiguo 11/02/2008, 17:03
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: query de query

Bienido a FDW,

te recomiendo que cuando pegues código lo encierres entre , o en la barra de herramientas tienes un icono con de hoja que tiene escrito php (el último de la fila de abajo)

Código PHP:
<?PHP
include("conectardb.php");

$query mysql_query("SELECT * FROM noticias ORDER BY id DESC LIMIT 1,1");

//si solamente recoges un solo registro de la DB no hace falta el bucle while()
$ver mysql_fetch_array($query);
$titulo $ver['titulo'];
$cuerpo $ver['cuerpo'];


echo 
$titulo

?>

Última edición por deet; 11/02/2008 a las 17:03 Razón: correccion
  #4 (permalink)  
Antiguo 11/02/2008, 17:06
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: query de query

Puedes intentarlo con ADODB (para poder usar el TOP), te paso un tutorial, solo busca en internet adobd4.5 o superior, descargalo y ponlo en tu carpeta include y ya le puedes hacer como dice el tutorial:

http://www.lacorona.com.mx/fortiz/adodb/tute-es.htm
__________________
"Eres grande por que caminas entre gigantes"
  #5 (permalink)  
Antiguo 11/02/2008, 17:12
 
Fecha de Ingreso: febrero-2008
Mensajes: 6
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: query de query

Cita:
Iniciado por deet Ver Mensaje
Bienido a FDW,

te recomiendo que cuando pegues código lo encierres entre , o en la barra de herramientas tienes un icono con de hoja que tiene escrito php (el último de la fila de abajo)

Código PHP:
<?PHP
include("conectardb.php");

$query mysql_query("SELECT * FROM noticias ORDER BY id DESC LIMIT 1,1");

//si solamente recoges un solo registro de la DB no hace falta el bucle while()
$ver mysql_fetch_array($query);
$titulo $ver['titulo'];
$cuerpo $ver['cuerpo'];


echo 
$titulo

?>
vale, gracias por el consejo :)

bueno, respecto al tema, gracias por lo del while pero con el codigo que me has dado consigo la ultima noticia, y yo queria la penultima.
Para eso yo habia pensado hacer un query de un query es decir, que me coja las 2 ultimas, las ordene por ascendente y me coja la primera

Código PHP:
<?PHP 
include("conectardb.php"); 

$query mysql_query("SELECT * FROM noticias ORDER BY id DESC LIMIT 2"); 
$query1 mysql_query("SELECT * FROM '$query' ORDER BY id ASC LIMIT 1"); 

$ver mysql_fetch_array($query1); 
$titulo $ver['titulo']; 
$cuerpo $ver['cuerpo']; 

echo 
"$titulo";  

?>
la idea seria algo asi, pero esto como que no funciona :(

Muchas gracias por la ayuda!

PD:
Cita:
Iniciado por ferbux Ver Mensaje
Puedes intentarlo con ADODB (para poder usar el TOP), te paso un tutorial, solo busca en internet adobd4.5 o superior, descargalo y ponlo en tu carpeta include y ya le puedes hacer como dice el tutorial:

htt p://ww w . lacorona . co m.mx /forti z/a d odb/tut e-es . ht m
ok, gracias, ahora me lo leo

Última edición por raisen; 11/02/2008 a las 17:15 Razón: modificar
  #6 (permalink)  
Antiguo 11/02/2008, 17:27
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: query de query

a mi me funciona de la forma como he posteado:

select * from noticias ORDER BY id DESC limit 1,1

tengo 39 registros y me ha devuelto el 38
  #7 (permalink)  
Antiguo 12/02/2008, 02:16
 
Fecha de Ingreso: febrero-2008
Mensajes: 6
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: query de query

Cita:
Iniciado por deet Ver Mensaje
a mi me funciona de la forma como he posteado:

select * from noticias ORDER BY id DESC limit 1,1

tengo 39 registros y me ha devuelto el 38
vale vale, lo siento, eran las 12 y pico de la noche y no estaba para pensar, el fallo estaba en que el orden estaba en descendente y me sacaba la segunda noticia por ese orden la cual casualmente era la primera :P
pero nada, ya esta solucionado.

Muchisimas gracias :)
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 10:27.