Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 03-jul-2006, 01:51   #1 (permalink)
n3m0 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Molesto Consulta mysql "especial"

Buenas,
estoy haciendo un sistema de ofertas de trabajo para una empresa y en la administracion tengo que hacer para que el administrador pueda buscar las ofertas por:
1.- referencia
2.- titulo
3.- titulo que este entre la fecha 1 y fecha 2

Las dos primeras estan hechas perfectamente pero la tercera he probado de hacer la llamada a mysql de muchas maneras pero no consigo que funcione, a ver si me podeis echar un cable.
El query debe mostrar todo los datos que tengan el titulo que hemos escrito en el form, pero solo los que esten entre las dos fechas que el administrador haya insertado.
Espero haber explicado bien lo que necesito, a ver si me podeis ayudar.
Un saludo,
n3m0
n3m0 está desconectado   Responder Citando
Antiguo 03-jul-2006, 02:01   #2 (permalink)
Azrael666 está en el buen camino
 
Avatar de Azrael666
 
Fecha de Ingreso: noviembre-2004
Mensajes: 632
pues eso depende de como hayas declarado las fechas en la base de datos,

si lo tienes con un timestamp el formato seria asi: 20060703140247, por lo que tendrias que modificar el dato que le pasas (2006/07/03) y dejarlo asi : 20060703 y añadirle detras 000000 en el caso de fecha de inicio y 235959 en el caso de fecha final:

select * from tabla where (".titulo=$titulo.") and (fecha_inicio>= ' ".$fechainicio." 000000') and
(fecha_final<=' ".$fechafinal." 235959')

si la fecha la tienes con un date tienes que acordarte de meter detras del dato que le pasas las horas (00:00:00 o 23:59:59), tambien tienes que ver en que formato te mete la fecha en la base de datos (2006/07/03 o 03/07/2006) porque puede dar errores...

select * from tabla where (".titulo=$titulo.") and (fecha_inicio>= ' ".$fechainicio." 00:00:00') and
(fecha_final<=' ".$fechafinal." 23:59:59')

mas o menos sería eso, que alguien me corrija si está mal explicado jajaja...

saludosss..
__________________
http://shortlink.co.uk/q33
Azrael666 está desconectado   Responder Citando
Antiguo 03-jul-2006, 02:08   #3 (permalink)
n3m0 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Buenas azrael. te cuento como esta el tema de la fecha.
En la Bd solo hay un campo fecha "fecha_oferta" al insertarla hago un time() y lo meto en segundos. Entonces en el formulario de administracion con la ayuda de un calendario el cliente inserta las fechas que despues las paso a time para poder hacer $fecha1 y $fecha2. Quiero que de la bd coja cuando $fecha1 <= fecha_oferta =<$fecha2.
Perdon por no haberlo explicado bien ;)
n3m0 está desconectado   Responder Citando
Antiguo 03-jul-2006, 02:15   #4 (permalink)
Azrael666 está en el buen camino
 
Avatar de Azrael666
 
Fecha de Ingreso: noviembre-2004
Mensajes: 632
Cita:
Quiero que de la bd coja cuando $fecha1 <= fecha_oferta =<$fecha2
.

bueno.. esta parte es como te lo puse yo $fecha1 seria la fecha_final y $fecha2 la de inicio.

por lo demas el problema estaría en el formato de las fechas, si haces un time() te lo guarda como date en la base de datos (vamos, eso creo); entonces el fallo supongo que estará en el paso de las variables para hacer la consulta, que puede que las coja como 2006/07/03 en lugar de 03/07/2006 (o viceversa)...

para comprobar eso haz un echo de los valores que le pasas a la consulta antes de hacerla para que te muestre el formato de la fecha y ya ves si el fallo está ahi o no...
__________________
http://shortlink.co.uk/q33
Azrael666 está desconectado   Responder Citando
Antiguo 03-jul-2006, 02:19   #5 (permalink)
n3m0 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Las mete en la bd en forma de time, ya que le hago un mktime antes de entrar.
seria mas facil hacerlo en date? es que normalmente lo he echo asi... y claro nose.

La consulta tal como esta me da un problema con la sintax de mysql.


$sql= "select * from ofertas where (tit_oferta = $titol) and (fecha_oferta>= ' ".$fechaz1." 000000') and
(fecha_oferta <=' ".$fechaz2." 235959') ORDER BY fecha_oferta DESC";

Gracias ;)
n3m0 está desconectado   Responder Citando
Antiguo 03-jul-2006, 10:11   #6 (permalink)
n3m0 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 74
Me sigue sin funcionar :( una ayuda por favor
n3m0 está desconectado   Responder Citando
Antiguo 03-jul-2006, 17:07   #7 (permalink)
pipo165 ha deshabilitado el karma
 
Fecha de Ingreso: junio-2005
Mensajes: 23
no sé si te ayude, pero en esta consulta deberías usar la funcion between(). ahora, ojo con el formato de las fechas... solo para recordarte mysql trabaja las fechas con el formato aaaa/mm/dd, alveres de como la leemos por estos lares.
la verdad es que sale mas facil trabajar con date(), pero me tinca que con time() las horas debieras ponerlas 23:59:59

$sql= "select * from ofertas where (tit_oferta = ' ".$titol." ') and (fecha_oferta between ' ".$fechaz1." 00:00:00' and ' ".$fechaz2." 23:59:59') ORDER BY fecha_oferta DESC";

algo asi.

recuerda tambien, que le estas pasando otro parametro a la clausula where "tit_oferta", entregará resultados una vez que coincidan ambos parametros. además me parece que tit_oferta es de tipo varchar... entonces revisa las comillas... tit_oferta=' ".$titol." '

suerte!!!

Última edición por pipo165; 03-jul-2006 a las 17:16.
pipo165 está desconectado   Responder Citando
Antiguo 04-jul-2006, 05:21   #8 (permalink)
Azrael666 está en el buen camino
 
Avatar de Azrael666
 
Fecha de Ingreso: noviembre-2004
Mensajes: 632
entre la comilla simple y la doble puse un espacio para que se viese que son comilla simple y doble.. pero ese espacio sobra

Cita:
(fecha_oferta>= '".$fechaz1." 000000') and
(fecha_oferta <='".$fechaz2." 235959') ORDER BY fecha_oferta DESC";
__________________
http://shortlink.co.uk/q33
Azrael666 está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 03:29.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93