Tampoco entiendo todo xD pero bueno poco a poco.
Estoy tratando de implementar un sistema de puntuacion para las noticias previamente generadas , pero me da un error y no consigue saber porque
Decir que la tabla que he creado es tal que asi:
id rating_id rating_num IP
La tengo vacia y sin ningun tipo de vista de relacion con otra tabla, pues del tutorial donde estoy leyendo como hacerlo, no pone nada de eso :(
Esto es lo que meto en el bucle para que se repita en cada noticia y pasandole row_publicaciones['id'] que sería la id de cada noticia:
Código PHP:
Ver original
<?php //Query que retorna el numero de votos para un producto o servicio $query_num_ratings = mysql_query("SELECT COUNT(*) as num FROM services_rating WHERE rating_id=".$row_publicaciones['id'], $conexion); //Numero de votos de un producto o registro //Query que retorna la suma, el total de votos de un producto o servicio $query_sum_ratings = mysql_query("SELECT SUM(rating_num) as sum FROM services_rating WHERE rating_id=".$row_publicaciones['id'], $conexion); //Si los votos son positivos //Guardamos la suma else //La suma vale 0 $sum_ratings = 0; $rating = 0; //Si la suma de votos es mayor que 0 if ($num_ratings > 0) { //Calculamos el número de estrellas a pintar } ?> <div id="rating<?=$row_publicaciones['id']?>" data="<?=$row_publicaciones['id']?>"> <?php //Por cada estrella for ($i=1; $i<=5; $i++) { //Si toca pintarla de verde if ($i <= $rating) //Mostramos estrella verde echo '<div id="rating'.$row_publicaciones['id'].'_'.$i.'" data='.$i.'> </div>'; else //Mostramos estrella gris echo '<div id="rating'.$row_publicaciones['id'].'_'.$i.'" data='.$i.'> </div>'; } ?> <div id="sumrating" data="<?=$sum_ratings?>" style="display:none"> </div> <div id="numrating" data="<?=$num_ratings?>" style="display:none"> </div> <div id="actual" data="<?=$rating?>" style="display:none;"> </div> <div class="ok" style="display:none;"> </div> </div>
Dentro del head la llamada a AJAX:
Código Javascript:
Ver original
<script type="text/javascript"> $(document).ready(function() { $('.estrella').click(function(){ var parent = $(this).parent().attr('id'); var service = $(this).parent().attr('data'); var rating = $(this).attr('data'); var dataString = 'id='+service+'&rating='+rating; $.ajax({ type: "POST", url: "inc/addvote.php", data: dataString, success: function() { var new_sum_rating = parseInt($('#'+parent+' #sumrating').attr('data')) + parseInt(rating); var new_num_rating = parseInt($('#'+parent+' #numrating').attr('data')) + 1; var new_rating = Math.round(new_sum_rating / new_num_rating); for(i=1;i<=new_rating;i++){ $('#'+parent+'_'+i+' .estrella').removeClass("estrella"); $('#'+parent+'_'+i+' .estrella').addClass("selected"); } $('#'+parent+' .ok').empty(); $('#'+parent+' #actual').empty(); $('#'+parent+' #actual').append('('+new_rating+'/5) basado en '+new_num_rating+' votos!').fadeIn("slow"); $('#'+parent+' .ok').append('Gracias por enviar tu voto!').fadeIn("slow"); $('#'+parent+' #actual').fadeOut(5000); $('#'+parent+' .ok').fadeOut(5000); } }); }); $('.estrella').hover(function(){ var parent = $(this).parent().attr('id'); $('#'+parent+' .estrella').css('background-image', 'url(images/estrella-gris.png)'); for(i=1;i<=$(this).attr('data');i++){ $('#'+parent+'_'+i).css('background-image', 'url(images/images/estrella-verde.png)'); } }); }); </script>
y el archivo addvote.php
Código PHP:
<?php
if (is_file("Connections/conexion.php")) {
require_once('Connections/conexion.php');
}
else {
require_once('../Connections/conexion.php');
}
$service = $_POST['id'];
$rating = $_POST['rating'];
$insert = mysql_query("INSERT INTO services_rating (rating_id, rating_num) VALUES ('$service', '$rating')", $conexion);
?>
Me da el siguiente error: mysql_result() expects parameter 1 to be resource, boolean given in public_html/Blog.php on line 219
Código PHP:
$num_ratings = mysql_result($query_num_ratings, 0, "num");