Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Query:Problema con versión MySQL

Estas en el tema de Query:Problema con versión MySQL en el foro de Mysql en Foros del Web. en mi servidor local, funciona la siguiente sentencia Código: select max(horaini) as hor, fecha as fec from tvisitas where iduser='".$rowdato["idusuario"]."' and fecha in (select max(fecha) ...
  #1 (permalink)  
Antiguo 17/02/2006, 12:50
Avatar de miglos  
Fecha de Ingreso: enero-2005
Ubicación: Perú
Mensajes: 235
Antigüedad: 19 años, 3 meses
Puntos: 1
Query:Problema con versión MySQL

en mi servidor local, funciona la siguiente sentencia
Código:
select max(horaini) as hor, fecha as fec from tvisitas where iduser='".$rowdato["idusuario"]."' and fecha in (select max(fecha) from tvisitas) group by iduser
pero al momento de subirla pagina a mi servidor web no la ejecuta, alguien me puede indicar como ejecutarla???

Servidor Local:
PHP: 4.3.9
MySQL: 4.1.7
Apache Web Server: 1.3.33

Servidor Web:
PHP: 4.4.1
MySQL: 4.0.25 -Standard Log
Apache Web Server: 1.3.34

Agradezco toda la ayuda que me puedan brindar.
__________________
:adios:
  #2 (permalink)  
Antiguo 17/02/2006, 13:44
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
como te dijeron en el foro de php es problema de version, recien a apartir de mysql 4.1.xx se puede hacer subconsultas, ahora si no puedes actualizar tu mysql, se puede hacer tu subconsulta con un poco de imaginacion y uso de los JOINS, pero para eso tendrias que mostrar un poco de la estructura de tus tablas, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #3 (permalink)  
Antiguo 17/02/2006, 13:53
Avatar de miglos  
Fecha de Ingreso: enero-2005
Ubicación: Perú
Mensajes: 235
Antigüedad: 19 años, 3 meses
Puntos: 1
Pues los datos estan en una misma tabla (tvisitas)
tvisitas
iduser
hor_ini
fecha
hora_sal

lo que quiero es sacar la ultima visita(hor_ini) que hizo un usuario (iduser) en el ultimo dia (fecha)
Gracias
__________________
:adios:
  #4 (permalink)  
Antiguo 17/02/2006, 14:06
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
creo que seria algo asi:

Código PHP:
//
SELECT 
  max
(horaini) as horfecha as fec 
FROM 
  tvisitas 
WHERE 
  iduser
='".$rowdato["idusuario"]."' 
GROUP BY 
  iduser
HAVING
  fecha 
=MAX(fecha
suerte, cya
__________________
"El Conocimiento es de todos, no solo de algunos"

Última edición por deadlykyo; 17/02/2006 a las 14:44
  #5 (permalink)  
Antiguo 17/02/2006, 14:43
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
creo que seria algo asi:

Código PHP:
//
SELECT 
  max
(horaini) as horfecha as fec 
FROM 
  tvisitas 
WHERE 
  iduser
='".$rowdato["idusuario"]."' 
GROUP BY 
  iduser
HAVING
  fecha 
=MAX(fecha
suerte, cya

Oops no se que paso pero lo envie 2 veces, sorry.
__________________
"El Conocimiento es de todos, no solo de algunos"
  #6 (permalink)  
Antiguo 17/02/2006, 16:05
Avatar de miglos  
Fecha de Ingreso: enero-2005
Ubicación: Perú
Mensajes: 235
Antigüedad: 19 años, 3 meses
Puntos: 1
pues asi no funciona, le di la vuelta:
Código:
SELECT max( fecha ) , hora_ent
FROM testadisticas
WHERE iduser =13
GROUP BY hora_ini
HAVING hora_ini = max( hora_ini )
, pero tampoco. De esta forma me parece mas lógico, pero igual, no me saca ningun resultado.
El usuario '13', tiene visitas los dias 15, 16 y 17/02/2006 a diferentes horas.
__________________
:adios:
  #7 (permalink)  
Antiguo 17/02/2006, 16:08
Avatar de miglos  
Fecha de Ingreso: enero-2005
Ubicación: Perú
Mensajes: 235
Antigüedad: 19 años, 3 meses
Puntos: 1
hora_ent = hora_ini
tvisitas = testadisticas

es lo mismo, solo q estoy probando con 2 tablas, en el query q estoy probando, esta todo bien.
__________________
:adios:
  #8 (permalink)  
Antiguo 17/02/2006, 17:16
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
una solucion rapida seria hacer uso de una vista:
Código PHP:
//
mysql>CREATE VIEW vista AS SELECT max(fecha) as fechaMax FROM tvisitas;
mysql>SELECT max(horaini) as horfecha as fec 
FROM tvisitas
vista
WHERE iduser
='".$rowdato["idusuario"]."' and fecha=fechaMax 
GROUP BY iduser 
si se me ocurre alguna manera de hacerlo en una sola consulta, te lo posteo, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #9 (permalink)  
Antiguo 17/02/2006, 17:57
Avatar de miglos  
Fecha de Ingreso: enero-2005
Ubicación: Perú
Mensajes: 235
Antigüedad: 19 años, 3 meses
Puntos: 1
gracias!!!
lo que pasa es que esa sentencia la ejecuto dentro de una pagina, y no se como utilizarla dentro del codigo, es posible??
__________________
:adios:
  #10 (permalink)  
Antiguo 18/02/2006, 07:54
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
claro si se puede:
Código PHP:
//
//aqui haces tu conexion y la base y todo eso
$vista="CREATE VIEW vista AS SELECT max(fecha) as fechaMax FROM tvisitas";
mysql_query($vista);
$consulta="SELECT max(horaini) as hor, fecha as fec FROM tvisitas, vista 
WHERE iduser='"
.$rowdato["idusuario"]."' and fecha=fechaMax GROUP BY iduser ";
$resConsulta=mysql_query($consulta);
mysql_close(); 
cya
__________________
"El Conocimiento es de todos, no solo de algunos"
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 01:03.