Buenas a todos foreros , me preguntaba si alguien podria hecharme un cable con este código que por más que miro y miro no consigo averiguar donde esta el fallo.
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
$rating = round($sum_ratings / $num_ratings); }
?>
<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);
?>
Siento ponerlo tal cual , pero esque no se ni por donde empezar xd
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");
A ver si alguien me arroja un poco de luz
