A mi se me ocurre esto:
1) Creas una tabla con los siguientes campos
id_anuncio -> tinyint(2) (NO ES PK)
tipo_voto -> VARCHAR(3)
cantidad_votos -> integer(4) (ponele mas si queres)
Fijate que tendria 2 filas esta tabla, la que corresponde a los votos + y la de los votos -, ambas con el mismo id_anuncio
2) Cuando alguien vota, para ingresar el valor votado, haces que se sume 1 a la cantidad de votos que corresponda, por ejemplo
si alguien vota a favor, la consulta seria
Código SQL:
Ver originalUPDATE votos SET cantidad_votos = cantidad_votos + 1 WHERE tipo_voto = '1' AND id_anuncio = 'tuID';
Y en contra seria:
Código SQL:
Ver originalUPDATE votos SET cantidad_votos = cantidad_votos + 1 WHERE tipo_voto = '-1' AND id_anuncio = 'tuID';
Entonces despues, si queres mostrar los resultados, lo unico que haces es hacer una consulta del tipo
Votos a favor:
Código SQL:
Ver originalSELECT cant_votos FROM votos WHERE id_anuncio = 'tuID' AND tipo_voto = '1';
Votos en contra
Código SQL:
Ver originalSELECT cant_votos FROM votos WHERE id_anuncio = 'tuID' AND tipo_voto = '-1';
Para mostrar el porcentaje (por ejemplo) seria una simple cuenta... Sumas las cantidades totales de votos y eso seria el 100%, luego es una regla de 3 simple con las cantidades individuales...