Foros del Web » Programando para Internet » PHP »

Como mostrar la cantidad de prestamos por meses

Estas en el tema de Como mostrar la cantidad de prestamos por meses en el foro de PHP en Foros del Web. hola amigos como estan, necesito que me echen una mano por favor, respecto a una consulta, lo que deseo es poder contar los prestamos existentes ...
  #1 (permalink)  
Antiguo 15/02/2017, 11:24
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Exclamación Como mostrar la cantidad de prestamos por meses

hola amigos como estan, necesito que me echen una mano por favor, respecto a una consulta, lo que deseo es poder contar los prestamos existentes por meses en la tabla prestamos, actualmente en la tabla tengo 9 registros donde, 7 son del mes de febrero, 1 de marzo y otro de mayo

y la consulta que tengo me los muestra de esta manera que esta bien

FEBRERO - 7
MARZO - 1
MAYO - 1

pero lo que yo quisiera es que me mostrara la consulta de esta manera

ENERO - 0
FEBRERO - 7
MARZO - 1
ABRIL -0
MAYO - 1

asi sucesivamente hasta diciembre, aqui esta la consulta que tengo

Código PHP:
Ver original
  1. $sql = "SELECT COUNT(*) as total, MONTH(fechaprestamo) as totalmes from prestamos GROUP BY MONTH(fechaprestamo) ORDER BY MONTH(fechaprestamo)";
  2.  
  3.         foreach ($this->dbh->query($sql) as $row)
  4.         {
  5.             $this->p[] = $row;
  6.         }
  7.         return $this->p;
  8.         $this->dbh=null;
  9.     }
  #2 (permalink)  
Antiguo 15/02/2017, 13:20
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Como mostrar la cantidad de prestamos por meses

Crea un array con todos los meses, agregas el total al mes correspondiente y listo.

Código:
// pseudocódigo
meses = array(1 => 0, 2=> 0, ... 12 => 0)
foreach(/* lectura de base de datos */ as row) {
    mes = (int) row[totalmes]
    meses[mes] = row[total]
}
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 15/02/2017, 13:36
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Como mostrar la cantidad de prestamos por meses

amigo muchas gracias por responder, la verdad logre mostrar lo que queria de esta manera, no se si seria un consulta muy barbara, me refiere a q me podria dar error en algun futuro


Código PHP:
Ver original
  1. public function LibrosPExternos()
  2.     {
  3. $year = date('Y');
  4. $tipo = 'EXTERNO';
  5. $sql = "select
  6. (select count(*) from prestamos where YEAR(fechaprestamo) = '".$year."' AND MONTH(fechaprestamo) ='01' AND tipoprestamo = '".$tipo."') as enero,
  7. (select count(*) from prestamos where YEAR(fechaprestamo) = '".$year."' AND MONTH(fechaprestamo) ='02' AND tipoprestamo = '".$tipo."') as febrero,
  8. (select count(*) from prestamos where YEAR(fechaprestamo) = '".$year."' AND MONTH(fechaprestamo) ='03' AND tipoprestamo = '".$tipo."') as marzo,
  9. (select count(*) from prestamos where YEAR(fechaprestamo) = '".$year."' AND MONTH(fechaprestamo) ='04' AND tipoprestamo = '".$tipo."') as abril,
  10. (select count(*) from prestamos where YEAR(fechaprestamo) = '".$year."' AND MONTH(fechaprestamo) ='05' AND tipoprestamo = '".$tipo."') as mayo,
  11. (select count(*) from prestamos where YEAR(fechaprestamo) = '".$year."' AND MONTH(fechaprestamo) ='06' AND tipoprestamo = '".$tipo."') as junio,
  12. (select count(*) from prestamos where YEAR(fechaprestamo) = '".$year."' AND MONTH(fechaprestamo) ='07' AND tipoprestamo = '".$tipo."') as julio,
  13. (select count(*) from prestamos where YEAR(fechaprestamo) = '".$year."' AND MONTH(fechaprestamo) ='08' AND tipoprestamo = '".$tipo."') as agosto,
  14. (select count(*) from prestamos where YEAR(fechaprestamo) = '".$year."' AND MONTH(fechaprestamo) ='09' AND tipoprestamo = '".$tipo."') as septiembre,
  15. (select count(*) from prestamos where YEAR(fechaprestamo) = '".$year."' AND MONTH(fechaprestamo) ='10' AND tipoprestamo = '".$tipo."') as octubre,
  16. (select count(*) from prestamos where YEAR(fechaprestamo) = '".$year."' AND MONTH(fechaprestamo) ='11' AND tipoprestamo = '".$tipo."') as noviembre,
  17. (select count(*) from prestamos where YEAR(fechaprestamo) = '".$year."' AND MONTH(fechaprestamo) ='12' AND tipoprestamo = '".$tipo."') as diciembre";
  18.  
  19.         foreach ($this->dbh->query($sql) as $row)
  20.         {
  21.             $this->p[] = $row;
  22.         }
  23.         return $this->p;
  24.         $this->dbh=null;
  25.     }
  #4 (permalink)  
Antiguo 15/02/2017, 13:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Como mostrar la cantidad de prestamos por meses

No te va a dar error, pero me parece que sí vas a consumir más recursos de lo necesario, aunque no creo que sea tan relevante porque este tipo de reportes no se genera con mucha frecuencia.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 15/02/2017, 13:52
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Como mostrar la cantidad de prestamos por meses

muchas gracias amigo triby, estaba tratando como tu me decias, no se que estaria haciendo mal

Código PHP:
Ver original
  1. <?php
  2.                     $meses = array(1 => 0, 2=> 0, 3=> 0, 4=> 0, 5=> 0, 6=> 0, 7=> 0, 8=> 0, 9=> 0, 0=> 0, 11=> 0, 12 => 0);
  3.                     foreach($lpi as $row) {
  4.                     $mes = (int) $row['totalmes'];
  5.                     echo $meses[$mes] = $row['total'].",";
  6.                                           }
  7.                     ?>
  #6 (permalink)  
Antiguo 15/02/2017, 14:17
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Como mostrar la cantidad de prestamos por meses

Entonces, supongo que ya lo solucionaste.

Por cierto, te sugiero no agregar esa coma en cada total, porque quizá quieras usar los datos para sumas o algún otro cálculo y, además, es más legible si agregas los elementos de formato al generar la salida HTML.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 15/02/2017, 14:24
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Como mostrar la cantidad de prestamos por meses

amigo triby, la verdad estoy tratando de hacer como tu me dijiste, pero no me sale la consulta como quiero amigo, es decir en enro no tengo prestamos, quisiera q me saliera 0, actualmente me sale la cantidad de febrero en enero, y lo tengo asi

Código PHP:
Ver original
  1. <?php
  2.                     $meses = array(1 => 0, 2=> 0, 3=> 0, 4=> 0, 5=> 0, 6=> 0, 7=> 0, 8=> 0, 9=> 0, 0=> 0, 11=> 0, 12 => 0);
  3.                     foreach($lpi as $row) {
  4.                     $mes = (int)$row['totalmes'];
  5.                     echo $meses[$mes] = $row['total'].",";
  6.                                           }
  7.                     ?>
  #8 (permalink)  
Antiguo 15/02/2017, 14:26
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Como mostrar la cantidad de prestamos por meses

me muestra el total pero no en sus respectivos meses
  #9 (permalink)  
Antiguo 15/02/2017, 14:30
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Como mostrar la cantidad de prestamos por meses

Si tienes un array donde (1 => 'Enero', 'Febrero' ... 'Diciembre)

Código:
for(i = 1; i <= 12; i++) {
     echo nombres[i] . ': ' . meses[i];
}
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 15/02/2017, 14:47
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Como mostrar la cantidad de prestamos por meses

sigo sin entender

creo el array con los meses, pero como asigno la cantidad al mismo

Código PHP:
Ver original
  1. $meses = array(1 => 'Enero', 2=> 'Febrero', 3=> 'Marzo', 4=> 'abril', 5=> 'Mayo', 6=> 'Junio', 7=> 'Julio', 8=> 'Agosto', 9=> 'Septiembre', 10=> 'Octubre', 11=> 'Noviembre', 12 => 'Diciembre');
  #11 (permalink)  
Antiguo 15/02/2017, 14:53
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Como mostrar la cantidad de prestamos por meses

Usas dos arrays como te sugerí en el último mensaje, uno llámalo $meses (donde tengas los nombres) y otro $totales
__________________
- León, Guanajuato
- GV-Foto
  #12 (permalink)  
Antiguo 15/02/2017, 15:01
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Como mostrar la cantidad de prestamos por meses

entonces tengo que usar el for para recorrer los meses y el foreach para los totales
  #13 (permalink)  
Antiguo 15/02/2017, 17:23
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Como mostrar la cantidad de prestamos por meses

No, se hace en el mismo for.
__________________
- León, Guanajuato
- GV-Foto
  #14 (permalink)  
Antiguo 15/02/2017, 18:10
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Como mostrar la cantidad de prestamos por meses

amigo triby, en verdad disculpame, pero alli si estoy grave, porque no logro entender, la manera de como sugieres

Etiquetas: cantidad, fecha, meses, registro, select, sql
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 23:33.