Creo que lo más importante ahí sería un buen diseño de la base de datos.
Haciéndolo así la programación de la aplicación sería muy sencilla, limitándose a realizar selects y updates sobre las tablas de la base de datos.
Así sin pensar mucho... deberías hacer las siguientes tablas:
- Tabla de encuesta: Contiene los datos principales de la encuesta y el número de personas que la han realizado.
- Tabla de preguntas: Contiene el texto de la pregunta y la encuesta a la que pertenece. También podrías almacenar ahí un numero de orden de la pregunta por ejemplo...
-Tabla de opciones: Contiene el texto de la opción y la pregunta a la que hace referencia.
Para los resultados, si le pones una clave única a cada opción, quedaría una tabla muy sencilla:
- Tabla de resultados: Identificador de la respuesta y valor de la respuesta. A parte, ya si quieres poder recueperar la encuesta realizada por un usuario determinado, pues también almacenarías ahí el identificador de usuario, creando también otra tabla de usuarios si te fuese de utilidad guardar datos de cada uno de ellos, como el sexo, la edad, etc, que suelen ser útiles para las estadísticas.
Después de eso... solo queda sacar las estadísticas según tus necesidades, que será una simple consulta a la base de datos.
Creo que puede servirte para orientarte, he pensado el diseño sobre la marcha mientras te escribía, pero seguro que tú pensandolo un poco y ajustándolo a tus necesidades sacas uno que te haga la tarea bastante sencilla.