php mysql rating-system

php - ¿Cómo construir una revisión simple y un sistema de calificación de 5 estrellas?



mysql rating-system (6)

Aquí hay una respuesta a una pregunta similar y debería ser un gran comienzo.

Convierte un número en una pantalla con clasificación de estrellas usando jQuery y CSS

Soy muy nuevo en tecnologías web y esto es básicamente para un proyecto a largo plazo en el que mi equipo está trabajando. Estamos trabajando en un sitio de revisión de alimentos.

A partir de ahora, no estoy muy seguro de cómo implementar un sistema simple de calificación de 5 estrellas. Se supone que debo usar un lenguaje del lado del servidor como PHP o uno del lado del cliente como Javascript (w / JQuery). Mirando alrededor parece que JQuery es más adecuado para esto? ¿O sería una combinación de ambos?

Lo que busco en cuanto a funcionalidad es:

  • Las estrellas se iluminan cuando el ratón se cierne.
  • La página no tiene que volver a cargarse cuando se hace clic en una estrella (no es realmente necesario)
  • Algún tipo de promedio mostrado al lado de las estrellas.
  • La clasificación debe almacenarse en algún lugar de la base de datos MySQL (¿es una buena idea?)

Realmente me disculpo si la pregunta suena vaga y estúpida, no tengo mucha idea de cómo implementar esto y he intentado buscar en Google. Si tiene alguna pregunta al respecto, por favor hágamelo saber.

Muchas gracias.


Para tener un buen control de click-star, sí, necesitas javascript. Así que deberías hacer jQuery.

Sí, querrás almacenar cosas en una base de datos. Podrías usar PHP y MySQL para eso.

Dado que esta es una tarea de clase, eso es mucho para implementar. Considere hacer trampa utilizando un CMS existente. Drupal en particular tiene una funcionalidad similar a la que pides. No tendrás que aprender mucho de Drupal, solo compra el libro "Uso de Drupal". El Capítulo 4 le mostrará cómo:

... cree un sitio web de revisión de productos de la comunidad, con ... y módulos Fivestar que proporcionen un widget de calificación.

Drupal está basado en PHP y utiliza MySQL como su base de datos, por lo que parece coincidir con el lugar al que iba. Puede tomar un poco para que Drupal se ejecute ... pero luego puede ir al capítulo 4 en un instante.

Si el profesor insiste en que escribas código, Drupal es de código abierto y es fácil agregar módulos personalizados.


Sí, tu enfoque suena perfecto. hay un par de piezas:

estrellas con efecto hover:

jquery: http://www.fyneworks.com/jquery/star-rating/

prototipo: http://www.fyneworks.com/jquery/star-rating/

css: http://www.henryhoffman.com/css-star-rating-tutorial.html

onclick puede invocar una llamada ajax con jquery: http://api.jquery.com/jQuery.post/

luego en el lado del servidor se puede mantener en una tabla de clasificación

Aquí hay un ejemplo más largo:

http://webtint.net/tutorials/5-star-rating-system-in-php-mysql-and-jquery/


Una combinación de JS y PHP es el camino a seguir (si PHP es el idioma del servidor elegido). JQuery es una buena manera de implementar fácilmente un tipo de sistema de estrellas, una vez desarrollé esto para uno de mis sitios que luego eliminé. Era una cosa simple que tenía eventos onrollover vinculados a 5 imágenes. Cuando se hizo clic, si era "id 4", se enviaría como un voto del usuario mediante la función .post () de jQuery a un script PHP que anotó al usuario y registró el voto en una base de datos MySQL si no hubiera ya votado.


Las estrellas se iluminan cuando el ratón se cierne.
Hay un brillante tutorial en la web para diseñar un sistema de calificación de 5 estrellas: http://rog.ie/blog/css-star-rater . Es puramente CSS por lo que no hay necesidad de Javascripting.

La página no tiene que volver a cargarse cuando se hace clic en una estrella (no es realmente necesario)
Ajax es tu amigo, lo que hice fue tener un <a class="one_star" href="javascript: submitRating(1, 5)"> donde <a> representaba una estrella y la función submitRating() usaba Ajax para transmitir mi calificación (1/5) al servidor, el servidor almacena la calificación (y asigna al usuario que otorgó la calificación) y vuelve a calcular la nueva calificación promedio y envía los resultados nuevamente en formato JSON.

Algún tipo de promedio mostrado al lado de las estrellas.
Fácil. Escriba un script SQL que, en función de la identificación del producto, tome la suma de la calificación promedio (es decir, 1/5 + 2/5 + 4/5, etc.), divídalo (suma) por la cantidad total de calificaciones y multiplíquelo por 100. Devuelva el valor al servidor, y del servidor al cliente.

La clasificación debe almacenarse en algún lugar de la base de datos MySQL (¿es una buena idea?)
Estoy usando MySQL para esto y funciona como un encanto ... Cualquier sistema de DB está bien.


Las estrellas se iluminan cuando el ratón se cierne.
Simple, tiene una imagen para la estrella amarilla y una imagen para la estrella blanca. Cuando una estrella se desplaza, todas las estrellas de la izquierda cambian su "src" a la estrella amarilla, todas las estrellas de la derecha cambian sus srcs a la estrella blanca.

La página no se vuelve a cargar cuando se hace clic en la estrella
Mira en Ajax / XHR
http://en.wikipedia.org/wiki/Ajax_(programming)
Sugerencia: Tenga un archivo .php llamado vote.php, y entregue la identificación de su comida y la calificación otorgada por el usuario.

Algún tipo de promedio mostrado entre las estrellas.
La mayoría de los sitios web solo muestran 0%, 50% y 100% de estrellas ... los usuarios realmente no se asustarán si no obtienen la "precisión exacta"

La calificación debe estar almacenada en la base de datos MySQL
Cualquier sistema de base de datos está bien. Pero sí, probablemente querrá usar una base de datos SQL para esto