Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Funciones Estadísticas en PHP

Estas en el tema de Funciones Estadísticas en PHP en el foro de PHP en Foros del Web. Hola amigos, nuevamente con una consulta necesito saber si hay alguna librería o función estadística para trabajar los datos en php, específicamente sería la de ...
  #1 (permalink)  
Antiguo 15/08/2014, 13:26
Avatar de MLDGATO  
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 1 mes
Puntos: 2
Pregunta Funciones Estadísticas en PHP

Hola amigos, nuevamente con una consulta necesito saber si hay alguna librería o función estadística para trabajar los datos en php, específicamente sería la de contar si que se usa mucho en excel, básicamente tengo una encuesta y deseo saber cuantos dijeron que si y cuantos dijeron que no y cuantos no contestaron, muchas gracias
  #2 (permalink)  
Antiguo 15/08/2014, 13:53
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Funciones Estadísticas en PHP

Si los datos los tienes en una base de datos lo puedes hacer con SQL.
Existe una extensión dedicada: http://php.net/manual/en/book.stats.php pero no esta instalada de forma predeterminada y si estas en windows es posible que no tenga dll.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 15/08/2014, 13:54
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Funciones Estadísticas en PHP

Para mis proyectos suelo utilizar la librería LibChart. Es fácil de implementar y de entender.

Acá puedes ver algunos ejemplos, aunque en el paquete para descargar, hay más.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 15/08/2014, 18:27
Avatar de MLDGATO  
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Funciones Estadísticas en PHP

Cita:
Iniciado por hhs Ver Mensaje
Si los datos los tienes en una base de datos lo puedes hacer con SQL.
Existe una extensión dedicada: http://php.net/manual/en/book.stats.php pero no esta instalada de forma predeterminada y si estas en windows es posible que no tenga dll.
Gracias por tu ayuda, si no es mucha molestia me podrías indicar como busco o como debo hacerlo en mysql ya que mis datos están ahí.
  #5 (permalink)  
Antiguo 15/08/2014, 18:29
Avatar de MLDGATO  
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Funciones Estadísticas en PHP

Cita:
Iniciado por Alexis88 Ver Mensaje
Para mis proyectos suelo utilizar la librería LibChart. Es fácil de implementar y de entender.

Acá puedes ver algunos ejemplos, aunque en el paquete para descargar, hay más.

Saludos
Muchas gracias veo que eso es una librería para hacer gráficas pero no encuentro lo que necesito, veo en los ejemplos como se hacen los gráficos pero no en si lo que necesito que es contar datos, muchas gracias.
  #6 (permalink)  
Antiguo 15/08/2014, 20:43
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Funciones Estadísticas en PHP

Entonces lo que buscas hacer es mucho más sencillo. Sería cuestión de que realices la consulta a la BD y evalúes a todos los datos obtenidos, luego, usas una estructura de selección múltiple, en la cual las opciones sería 'sí', 'no' y quienes no estén en ninguno de ambos bandos, se los tomará por defecto como los que no contestaron, algo así:

Código PHP:
Ver original
  1. $si = 0;
  2. $no = 0;
  3. $noCont = 0;
  4. $query = mysqli_query($conexion, 'SELECT * FROM encuesta');
  5. if (mysqli_num_rows($query)){
  6.     while ($row = mysqli_fetch_array($query)){
  7.         switch ($row['estado']){
  8.             case 'si':
  9.                 $si++;
  10.                 break;
  11.  
  12.             case 'no':
  13.                 $no++;
  14.                 break;
  15.  
  16.             default:
  17.                 $noCont++;
  18.                 break;
  19.         }
  20.     }
  21.  
  22.     mysqli_free_result($query);
  23. }
  24.  
  25. echo 'Personas que contestaron SÍ: ' . $si;
  26. echo 'Personas que contestaron NO: ' . $no;
  27. echo 'Personas que no contestaron: ' . $noCont;

Esas tres primeras variables son los acumuladores que irán incrementando sus valores de uno en uno por cada dato de la BD que coincida con el valor que cada una de ellas representa. Para este ejemplo, he supuesto que el campo que almacena el dato de la respuesta de cada encuestado se llama 'estado', pero si en tu caso tiene otro nombre, deberás colocar el que corresponda. Lo mismo con la tabla a la que consulto.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 15/08/2014, 23:19
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Funciones Estadísticas en PHP

Y como es la estructuras de tus tablas donde se guardan las encuestas?

La funcion de contar se llama count tanto en php como en mysql.

Podrias hacer una consulta de este tipo:

Código MySQL:
Ver original
  1. SELECT respuesta, count(*) FROM encuesta GROUP BY respuesta;
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #8 (permalink)  
Antiguo 16/08/2014, 20:01
Avatar de MLDGATO  
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Funciones Estadísticas en PHP

Cita:
Iniciado por Alexis88 Ver Mensaje
Entonces lo que buscas hacer es mucho más sencillo. Sería cuestión de que realices la consulta a la BD y evalúes a todos los datos obtenidos, luego, usas una estructura de selección múltiple, en la cual las opciones sería 'sí', 'no' y quienes no estén en ninguno de ambos bandos, se los tomará por defecto como los que no contestaron, algo así:

Código PHP:
Ver original
  1. $si = 0;
  2. $no = 0;
  3. $noCont = 0;
  4. $query = mysqli_query($conexion, 'SELECT * FROM encuesta');
  5. if (mysqli_num_rows($query)){
  6.     while ($row = mysqli_fetch_array($query)){
  7.         switch ($row['estado']){
  8.             case 'si':
  9.                 $si++;
  10.                 break;
  11.  
  12.             case 'no':
  13.                 $no++;
  14.                 break;
  15.  
  16.             default:
  17.                 $noCont++;
  18.                 break;
  19.         }
  20.     }
  21.  
  22.     mysqli_free_result($query);
  23. }
  24.  
  25. echo 'Personas que contestaron SÍ: ' . $si;
  26. echo 'Personas que contestaron NO: ' . $no;
  27. echo 'Personas que no contestaron: ' . $noCont;

Esas tres primeras variables son los acumuladores que irán incrementando sus valores de uno en uno por cada dato de la BD que coincida con el valor que cada una de ellas representa. Para este ejemplo, he supuesto que el campo que almacena el dato de la respuesta de cada encuestado se llama 'estado', pero si en tu caso tiene otro nombre, deberás colocar el que corresponda. Lo mismo con la tabla a la que consulto.

Saludos
Muchas gracias me funciono muy bien
  #9 (permalink)  
Antiguo 16/08/2014, 20:02
Avatar de MLDGATO  
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Funciones Estadísticas en PHP

Cita:
Iniciado por NSD Ver Mensaje
Y como es la estructuras de tus tablas donde se guardan las encuestas?

La funcion de contar se llama count tanto en php como en mysql.

Podrias hacer una consulta de este tipo:

Código MySQL:
Ver original
  1. SELECT respuesta, count(*) FROM encuesta GROUP BY respuesta;
Muchas gracias por tu ayuda no sabía de esta funcion ya que soy nuevo en esto la probare tambien.

Etiquetas: php+base
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 15:54.