[OT] consulta en mysql y php

Gabriel Patiño gepatino en gmail.com
Vie Dic 2 20:18:30 GMT 2005


El 2/12/05, David Ortiz<david.listaubuntu en gmail.com> escribió:
> tengo una tabla <resultados> con los campos
> <id_pregunta,id_encuesta,respuesta>
>  lo que quiero hacer es filtrar los registros por id_encuesta y despues por
> id_pregunta
>
>  como por ejemplo,
>  <id_encuesta><id_pregunta> <respuesta>
>  EA0001                  1                 excelente
>  EA0001                  2                 regular
>  PC0001                  1                 bueno
>  EA0002                  1                 excelente
>  EA0002                   2                malo
>  PC0002                   1                bueno
>  PC0001                   2                regular
>
>  necesito saber quienes que encuestas comienazan con EA
>  $consulta = "SELECT * FROM resultados where id_encuesta like 'EA%'";
>
>  <id_encuesta><id_pregunta> <respuesta>
>  EA0001                  1                 excelente
>  EA0001                  2                 regular
>  EA0002                  1                 excelente
>  EA0002                   2                malo
>
>  luego, necesito saber cuantos contestaron la pregunta #1 con 'excelente',
> 'regular', 'malo', etc;
>  //esta consulta no se como seria
>  para despues hacer un fetch_array y:
>  switch ($SQLrow['respuesta'])
>               {
>                   case 'EXCELENTE':
>                       $excelente++;
>                       break;
>
>                   case 'REGULAR':
>                       $regular++;
>                       break;
>                   case 'MALO':
>                       $malo++;
>                       break;
>
>               }
>      }
>  si me pueden ayudar, se los agradeceria mucho.


Lo deberias poder hacer todo desde la consulta:

$consulta =
"SELECT id_pregunta, respuesta, count(*)
 FROM resultados
 WHERE id_encuesta like 'EA%'
 GROUP BY id_pregunta, respuesta";


El resulta seria (segun tu ejemplo):

id_pregunta   respuesta   count(*)
1                     exelente      2
2                     regular         1
2                     malo             1


--
Gabriel E. Patiño



Más información sobre la lista de distribución ubuntu-es