Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consulta para agrupar datos segun el mes

Estas en el tema de Consulta para agrupar datos segun el mes en el foro de PHP en Foros del Web. Hola a todo, les comento que estoy tratando de hacer una consulta en la cual se agrupen la actividad del usuario por cada mes y ...
  #1 (permalink)  
Antiguo 27/02/2017, 20:00
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Pregunta Consulta para agrupar datos segun el mes

Hola a todo, les comento que estoy tratando de hacer una consulta en la cual se agrupen la actividad del usuario por cada mes y año.
Tengo una tabla que dice:
id idusuario mes anio
1 2 Enero 2017
2 2 Enero 2017
3 4 Febrero 2017

Tendia que tener el siguiente resultado:

Usuario 2
Año 2017
En Enero se registro 2 Veces
En Febrero se registro 0 Veces

Código PHP:
$gp $conn->query("SELECT count(*) AS id, mes FROM pst Group by mes");
$filas $gp->rowCount(); 
Hice eso, pero el resultado es 2 y no se como realizar bien la consulta. No espero que me lo hagan, sino que me orienten. Gracias
__________________
Zreep
  #2 (permalink)  
Antiguo 28/02/2017, 07:03
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: Consulta para agrupar datos segun el mes

pq parece que le estás pidiendo expresamente que te mueste ese 2.No utilizes rawCount, pues solo te cuenta los registro, tienes que extraer la data de esa consulta para convertirla en un array con la que puedas trabajar.
  #3 (permalink)  
Antiguo 28/02/2017, 09:11
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Consulta para agrupar datos segun el mes

Cita:
Iniciado por Triby2 Ver Mensaje
pq parece que le estás pidiendo expresamente que te mueste ese 2.No utilizes rawCount, pues solo te cuenta los registro, tienes que extraer la data de esa consulta para convertirla en un array con la que puedas trabajar.
Código PHP:
Ver original
  1. while($row = $gp->fetch_array(MYSQLI_ASSOC)){
  2.  
  3. }

En tu caso que no usas mysqli ( hazlo es mas seguro) lo sel ASSOC cambia, busca como se hace
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #4 (permalink)  
Antiguo 28/02/2017, 10:46
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Consulta para agrupar datos segun el mes

Bueno, tampoco es la consulta que busca...

Sería algo así:
Código SQL:
Ver original
  1. SELECT COUNT(*) AS numero_veces, id_usuario, mes, anio  FROM pst GROUP BY id_usuario, mes, anio

Aunq hace mucho q no hago consultas de este tipo, pero si no recuerdo mal...
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 01/03/2017, 14:24
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Consulta para agrupar datos segun el mes

También podrías ayudarte con un array el cual puedes utilizar luego donde lo necesites, por ejemplo:

Código PHP:
Ver original
  1. //Inicializo el Array
  2. $data = array();
  3.  
  4. //Ejecuto la consulta
  5. $gp = $conn->query("SELECT id, idusuario, mes,anio FROM pst");
  6. $t = mysqli_num_rows($gp);
  7.    
  8. //Recorro los resultados      
  9. while($row = $gp->fetch_array()){
  10.  
  11. //Verifico que la id esta en el array
  12.         if(array_key_exists($row['idusuario'],$data)){
  13. //De ser positivo actualizo la cantidad
  14.             $data[$row['idusuario']]['cantidad'] = $data[$row['idusuario']]['cantidad']+1;
  15.         }else{
  16. //De ser negativo la agrego al array
  17.             $data[$row['idusuario']] = array('mes'=>$row['mes'],'anio'=>$row['anio'],'cantidad'=>1);
  18.         }
  19.     };
  20.  
  21. //Luego recorro el array y muestro los resultados
  22.     foreach ($data as $key => $value) {
  23.         echo "El Usuario ".$key." Ingreso ".$value['cantidad']." el mes de ".$value['mes']." del año ".$value['anio'];
  24.     }

O tambien como te indico el amigo Eleazan, Saludos
__________________
[email protected]
HITCEL
  #6 (permalink)  
Antiguo 05/03/2017, 00:05
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Consulta para agrupar datos segun el mes

Gracias a todos, han sido de gran ayuda... ya estoy mas orientado. Voy a agrupar los trabajos y voy a ir probando lo que me dicho. Mil gracias
__________________
Zreep

Etiquetas: agrupar, registro, usuario
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 07:59.