¿Nuevo usuario?
Puedes registrarte aquí
 
       
Menú principal
 
 Navegación
Buscar
dpForo
dpFAQ
dpManuales
dpDescargas
dpThemes
Noticias por Temas
Recomiéndanos
Enlaces
Créditos
dzStaffStatus
Miembros:  Administradores
No Conectado  el_cuervo  
No Conectado  Dixso  
Miembros:  Colaboradores
No Conectado  AnyKiller  
No Conectado  nestormateo  
No Conectado  docser  
Miembros:  Moderadores
No Conectado  cardiru  
No Conectado  javiermisol  
Miembros:  Traductores
No Conectado  gnrx  
Miembros:  Miembros:
Ultimo:  Nuevos Hoy: 1
Ultimo:  Nuevos Ayer: 10
Ultimo:  Total: 71819
Ultimo:  Ultimo:
kazatron
Miembros:  Conectados
Miembros:  Miembros: 0
Invitados:  Invitados: 69
Total:  Total: 69
Miembros:  Miembros Online
No hay miembros conectados
Sponsor
dp-Tools
 Generador de Menús
 Pop-Up Maker
 Generador de Bloques
 Generador de Módulos
Enlázanos


Texto del enlace:


Otros Banners:



Theme creado por
dev-postnuke.com

 Foro dev-postnuke.com
  General :: Programación PHP
  No me funciona la modificacion de una sentencia sql para recuperar datos

Bienvenido invitado

Moderado por: el_cuervo, Dixso, AnyKiller, cardiru, javiermisol, MrGer << Tema anterior   Tema siguiente >>
Imprimir tema
Autor Tema: No me funciona la modificacion de una sentencia sql para recuperar datos
daba
Enviado: 02/11/2006 a las 10:11
Novato
Novato


Karma: 0 (0 Votos)

Registrado: 12/07/06
Mensajes: 17

Estado: Desconectado
Ultima visita: 27/03/07
No me funciona una sentencia sql para recuperar datos

Hola, estoy modificando la sentencia sql del bloque de noticias más leidas para recupera datos. Lo que quiero hacer es recuperar aquellas noticias más leídas de los últimos 15 días. La sentencia original es la siguiente:

Código
  1. list($dbconn) = pnDBGetConn();
  2. $pntable = pnDBGetTables();
  3. $column  = &$pntable[ 'stories_colum' ];
  4. $myquery = buildSimpleQuery ( 'stories' , array ( 'sid', 'title', 'counter' ), $queryalang, "$column[ counter ] DESC", amount);
  5. $result2 = $dbconn->Execute($myquery);


Y la modificación es la siguiente:
Código
  1. $myquery = buildSimpleQuery ( 'stories' , array ( 'sid', 'title', 'counter' ), $queryalang, "$column[ counter ] DESC, DATE_SUB($column[time], INTERVAL 15 DAY", amount);


dónde el campo time es en formato TIMESTAMP. He leido que con la sentencia
Código
  1. DATE_SUB($column[nombre_columna], INTERVAL 15 DAY
recupero los datos de la tabla que tengan el campo nombre_columna un valor inferior a 15 días.

Pero al ejecutar dia modificación, me está devolviendo error de sql que no entiende la línea que he modificado. De db2 controlo, pero de sentencias sql ando un poco pez. ¿Podeis echarme una mano?
Recibir un cordial saludo y gracias de antemano por la antención prestada.
daba Enviar MP


el_cuervo
Enviado: 02/11/2006 a las 13:11
Administrador
Administrador

avatar

Karma: 9 (83 Votos)

Registrado: 12/06/03
Mensajes: 6528

Estado: Desconectado
Ultima visita: 23/07/07
fijate que te falta cerrar un parentesis en la query. Justo despues de INTERVAL 15 DAY, el parentesis es el de la funcion DATE_SUB


el_cuervo Enviar MP WwW
daba
Enviado: 26/12/2006 a las 20:12
Novato
Novato


Karma: 0 (0 Votos)

Registrado: 12/07/06
Mensajes: 17

Estado: Desconectado
Ultima visita: 27/03/07
Gracias x la ayuda Cuervo y perdón x l retraso, he puesto tu modificación y sigue sin funcionar. He cambiado la sentencia anterior por esta que es más clara, la diferencia es que ahora ya no da error, pero no muestra nada.
La columna time tiene formato timestamp.

Código
  1. list($dbconn) = pnDBGetConn();
  2. //$pntable = pnDBGetTables();
  3. $table = $pntable['stories'];
  4. $column = &$pntable['stories_column'];
  5. //$myquery = buildSimpleQuery ('stories', array ('sid', 'title', 'counter'), $queryalang, "$column[counter] DESC", $amount);
  6. $myquery= "SELECT $column[sid], $column[title], $column[counter]
  7.        FROM $table
  8.        WHERE DATE_SUB(CURRDATE(),INTERVAL 30 DAY) <= UNIX_TIMESTAMP($column[time])
  9.        ORDER BY $column[counter] DESC, $column[time] DESC LIMIT $amount";
  10. $result2 = $dbconn->Execute($myquery);


Gracias y feliz año!!!!!
daba Enviar MP
daba
Enviado: 27/12/2006 a las 19:12
Novato
Novato


Karma: 0 (0 Votos)

Registrado: 12/07/06
Mensajes: 17

Estado: Desconectado
Ultima visita: 27/03/07
Lo tengo, yuhuuuuuuuuuu. Gracias a todos x la atención y ayuda prestada, aunque lo haya conseguido x mi cuenta. Hay que ser agradecido, y + x navidad smile

Por si os interesa sólo hay que modificar el código sql y quedaría así:
Código
  1. "SELECT $column[sid], $column[title], $column[counter]
  2. FROM $table
  3. WHERE DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) <= $column[time]
  4. ORDER BY $column[counter] DESC, $column[time] DESC LIMIT $amount"


Feliz año

Daba
daba Enviar MP




Powered by pnForum Version 2.6

Inicio  |  dpFaq  |  dpManuales  |  dpDescargas  |  dpThemes  |  Contacta

Web site powered by PostNuke MySQL PHP Postnuke Spain PHP RSSPixel Add to Technorati Favorites

Todos los logos y marcas registradas en este sitio son propiedad de sus respectivos dueños. Los comentarios son propiedad de sus autores, el resto es de este sitio Web (c) 2003, que fue creado con PostNuke, un sistema portal Web escrito en PHP. PostNuke es Software Libre liberado bajo la licencia GNU/GPL.

Dev-CMS.com :: Amplía tus horizontes.

HOSPEDAJE Y DOMINIOS -- Tu Hosting
Alojamiento Web --- Registro de Dominios