Foros del Web » Programando para Internet » PHP »

Duda en Consulta MySQL por PHP?

Estas en el tema de Duda en Consulta MySQL por PHP? en el foro de PHP en Foros del Web. Hola! Estoy en plena creación de mi primera página web en php y mysql y he llegado a una duda en la que no tengo ...
  #1 (permalink)  
Antiguo 23/12/2009, 01:59
 
Fecha de Ingreso: diciembre-2009
Ubicación: Linz
Mensajes: 48
Antigüedad: 14 años, 4 meses
Puntos: 1
Pregunta Duda en Consulta MySQL por PHP?

Hola!

Estoy en plena creación de mi primera página web en php y mysql y he llegado a una duda en la que no tengo idea de cómo hacerlo, por lo que les pido una ayudita.

Mi tabla tiene estas columnas:
Hora + Visita + fecha

y guarda la cantidad de gente que entra en un local. En hora guardo una variable (13, 14, 15 ó 16) para saber la hora de la que se refiere el registro.

Cuando quiero hacer estadísticas de cada día, tengo que consultar esta tabla y sacar la cantidad de gente que ha entrado en el local. Lo que haría yo es que dependiendo de la fecha, sacar la cantidad de gente.

El problema es que no puedo sumar los campos "Visita" porque:

a las 13:00 entran 500 personas
a las 14:00 entran 700 personas
a las 15:00 entran 950 personas

Tengo que tomar siempre el último dato y actualmente no se cómo hacerlo porque hay días en los que posiblemente no se tome el de las 15:00 ó inclusive el de las 16:00.

Lo se, es una pregunta complicada, pero no tengo idea de cómo hacerlo :(
  #2 (permalink)  
Antiguo 23/12/2009, 02:58
Avatar de zaetoner  
Fecha de Ingreso: noviembre-2007
Ubicación: La ciudad de México
Mensajes: 607
Antigüedad: 16 años, 5 meses
Puntos: 30
Respuesta: Duda en Consulta MySQL por PHP?

en realidad la pregunta se complica por que no te explicas bien, es decir cualquiera puede hacer una consulta com mysql_query y manipular los datos y yo no te entiendo lo que quieres hacer
__________________
...
  #3 (permalink)  
Antiguo 23/12/2009, 03:45
 
Fecha de Ingreso: diciembre-2009
Ubicación: Linz
Mensajes: 48
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Duda en Consulta MySQL por PHP?

Creo que si lo pongo gráficamente se entenderá mejor ;)

Lo que necesito es sumar el último dato (de la columna CANTIDAD) de cada día

Código:
HORA    +    Cantidad        +       fecha

13             250                  16-12-2009
14             300                  16-12-2009 (estos 300 incluyen los 250 
                                               de la hora anterior, igual 
                                               con los siguientes)

13             100                  17-12-2009
14             400                  17-12-2009 
15             600                  17-12-2009
16             900                  17-12-2009

13             400                  18-12-2009

13             700                  19-12-2009
14             1200                 19-12-2009
15             1500                 19-12-2009

13             500                  20-12-2009
14             600                  20-12-2009
15             900                  20-12-2009
16             1200                 20-12-2009
Espero haber sido claro :)
muchas gracias!!
  #4 (permalink)  
Antiguo 23/12/2009, 03:50
Avatar de zaetoner  
Fecha de Ingreso: noviembre-2007
Ubicación: La ciudad de México
Mensajes: 607
Antigüedad: 16 años, 5 meses
Puntos: 30
Respuesta: Duda en Consulta MySQL por PHP?

haz tu consulta de manera que solo te muestre el ultimo dato por ejemplo:

SELECT * FROM tutabla ORDER BY hora DESC LIMIT 0,1

esto va a darte solo el ultimo dato,

si quieres trabajar por dia usa:

SELECT * FROM tutabla WHERE hora=24 LIMIT 0,1

como sabemos 24 es la ultima hora de cada dia,
__________________
...
  #5 (permalink)  
Antiguo 23/12/2009, 04:02
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Duda en Consulta MySQL por PHP?

No entiendo bien esto que dices:

Mi tabla tiene estas columnas:
Hora + Visita + fecha



¿Que guardas en el campo "Visita"? Creo que lo que pides es una consulta tal que asi:

Select Hora, count(Hora), Fecha from tabla group by Fecha,Hora order by Fecha ASC, Hora Asc


Eso te va contar el numero de registros con la misma Fecha+Hora, lo que no va a hacer es ir acumulando las hora anteriores de cada dia, pero eso una vez haces el bucle WHILE para mostrarlo lo puedes ir controlando, dinos si esto te sirve y te ayudamos con lo ultimo

Saludos buen karma y japy crismas
  #6 (permalink)  
Antiguo 23/12/2009, 04:06
Avatar de zaetoner  
Fecha de Ingreso: noviembre-2007
Ubicación: La ciudad de México
Mensajes: 607
Antigüedad: 16 años, 5 meses
Puntos: 30
Respuesta: Duda en Consulta MySQL por PHP?

Cita:
¿Que guardas en el campo "Visita"?
jajaja que nunca haz usado SELECT?

EL where hora=24 : va a seleccionar todos los datos que tengan 24 eso es todo, no guarda nada
__________________
...
  #7 (permalink)  
Antiguo 23/12/2009, 04:22
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Duda en Consulta MySQL por PHP?

Cita:
Iniciado por zaetoner Ver Mensaje
jajaja que nunca haz usado SELECT?

EL where hora=24 : va a seleccionar todos los datos que tengan 24 eso es todo, no guarda nada
Pero es distinto mi enfoque al tuyo respecto a la consulta, yo trato de contar visitas con la consulta que puse, con tu consulta lo que haces es solo recoger registros, por eso mi pregunta, para saber realmente que quiere obtener
  #8 (permalink)  
Antiguo 23/12/2009, 04:35
 
Fecha de Ingreso: diciembre-2009
Ubicación: Linz
Mensajes: 48
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Duda en Consulta MySQL por PHP?

He estado mirando el código y comprobándolo en phpmyadmin y si, me da el último dato añadido, pero lo que tengo que hacer es sumar los ultimos datos de cada día :S que en mi ejemplo sería sumar:

Código:
14             300                  16-12-2009
16             900                  17-12-2009
13             400                  18-12-2009
15             1500                 19-12-2009
16             1200                 20-12-2009
SELECT * FROM tutabla WHERE hora=24 LIMIT 0,1

no me vale porque el campo hora solo tiene 4 posibilidades (13, 14, 15, 16) (aunque se agradece ;) )

alguna otra idea? =/
  #9 (permalink)  
Antiguo 23/12/2009, 04:39
 
Fecha de Ingreso: diciembre-2009
Ubicación: Linz
Mensajes: 48
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Duda en Consulta MySQL por PHP?

Cita:
Iniciado por Vun Ver Mensaje
que quiere obtener
Hola! no habia visto tu respuesta!

Mira, en "visita" guardo la cantidad de gente que ha entrado un dia determinado. Pero al momento de hacer estadísticas, necesito sumar la cantidad de gente que ha entrado en cada dia. El problema es en que cada día puede haber 1 registro como mínimo y 4 como máximo.
  #10 (permalink)  
Antiguo 23/12/2009, 05:37
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Duda en Consulta MySQL por PHP?

Bueno, segun tu, dices que si en el mismo dia grabas dos registros...... en el ultimo van las Visitas totales no?

Entonces creo que te serviria algo asi:

select * from tabla group by FECHA order by FECHA ASC, HORA DESC


Prueba y me dices
  #11 (permalink)  
Antiguo 23/12/2009, 06:00
 
Fecha de Ingreso: diciembre-2009
Ubicación: Linz
Mensajes: 48
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Duda en Consulta MySQL por PHP?

Cita:
Iniciado por Vun Ver Mensaje

select * from tabla group by FECHA order by FECHA ASC, HORA DESC
Eres mi héroe :D jejeje

Bueno, ya que tengo los datos que quiero, me falta sumar todo eso :/

Ahora mi código (por el momento) es este:

select visitas from tabla group by FECHA order by FECHA ASC, HORA DESC

Pero lo de sumar no tengo idea como hacerlo...aunque he intentado con esto, pero no funciona:

Código:
select SUM(visitas) as total_visitas from tabla group by FECHA order by FECHA ASC, HORA DESC
  #12 (permalink)  
Antiguo 23/12/2009, 06:54
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Duda en Consulta MySQL por PHP?

Prueba asi

select SUM(visitas) as TOTAL from tabla group by FECHA order by FECHA ASC, HORA DESC

Casi lo tenias!
  #13 (permalink)  
Antiguo 23/12/2009, 07:30
 
Fecha de Ingreso: diciembre-2009
Ubicación: Linz
Mensajes: 48
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Duda en Consulta MySQL por PHP?

Es muy raro, porque me hace sumas por fechas y no el total.

Este es el contenido de la tabla:


Y este es el resultado que me da:


será que luego puedo sumar todos esos datos con php? o con otra consulta?
  #14 (permalink)  
Antiguo 23/12/2009, 07:40
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Duda en Consulta MySQL por PHP?

¿Quieres sumar todo eso? alla vamos!!

Podemos tratar esto como una tabla:

(select SUM(visitas) as TOTAL from tabla group by FECHA order by FECHA ASC, HORA DESC) as tabla2

Entonces hacemos otro SUM

select SUM(TOTAL) as TOTALFINAL from (select SUM(visitas) as TOTAL from tabla group by FECHA order by FECHA ASC, HORA DESC) as tabla2
  #15 (permalink)  
Antiguo 23/12/2009, 07:44
 
Fecha de Ingreso: diciembre-2009
Mensajes: 19
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Duda en Consulta MySQL por PHP?

yo aria una tabla dinamica donde por un lado te de un registro cada cierta cantidad de horas ejemplo cada 3 hora // tantas visitas // dia tanto y que esos datos te los tire a un libro de exel osea podrias ponerle una animacion al sitio como entrada que el usuario tenga que hacer un click al hacer click te esta mandando un informe de que en el lapso de las 3 a las 4pm alguien visito tu pagina yo la tabla la haria al reves primero la fecha//hora//visitas
  #16 (permalink)  
Antiguo 23/12/2009, 07:51
 
Fecha de Ingreso: diciembre-2009
Ubicación: Linz
Mensajes: 48
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Duda en Consulta MySQL por PHP?

Hola carla!

Lo de las visitas es por entrada manual, no es el control de una página web ;) es decir, yo tengo que escribit cuánta gente ha entrado hasta la 1pm, 2pm, etc ;)

Cita:
Iniciado por Vun Ver Mensaje
(select SUM(visitas) as TOTAL from tabla group by FECHA order by FECHA ASC, HORA DESC) as tabla2
:( me tira esto:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as tabla2' at line 1

Última edición por amatosg; 23/12/2009 a las 07:53 Razón: respondo a Carla12
  #17 (permalink)  
Antiguo 23/12/2009, 08:19
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Duda en Consulta MySQL por PHP?

Probaste la segunda consulta? esa era la buena, la primera era para ir explicandote un poco
  #18 (permalink)  
Antiguo 23/12/2009, 17:03
 
Fecha de Ingreso: diciembre-2009
Ubicación: Linz
Mensajes: 48
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Duda en Consulta MySQL por PHP?

otra vez eres mi héroe, jejeje la segunda consulta me da el resultado que quiero ;)

Muchas gracias a ti y a los que participaron, quiero dedicar este post a....uhmmm vale, se me ha ido la olla...
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:41.