Hola amigos como estan
Vereis tengo un marcador de votos el cual mira en la base de datos numero de votos y suma uno cuando el usuario lo pulsa.
La cosa es que si dos usuarios tiene abierto el archivo y uno de ellos da su voto al otro no se le actualiza el marcador, no se si abria alguna posible solucion para esto.
A ver si alguien tiene una idea, mil gracias de antemano.
Seria este el codigo:
HTML:
Código HTML:
<html>
<head>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<!--
tu codigo aqui
-->
<?php
//AQUI DEBES BUSCAR LA FORMA DE COLOCAR EL NUMERO
//DEL ARTICULO DONDE SE HARA LA VOTACION
$articulo = 7588;
include_once('conexion.php');
$noticia = $articulo;
$sql3 = mysql_query("select id_noticia, vistas from Tecnologia_noticias where id_noticia = '$noticia'",$conexion);
$array3 = mysql_fetch_array($sql3);
$votos3 = $array3['vistas'];
?>
<div id="votar">
<?php echo $votos3.'Han votado por este articulo';?>
</div>
<div id="votar">
<input type="submit" style="border:0; " name="vota_articulo" id="vota_articulo" value="Votar" onClick="ajax_votar(<?php echo $articulo; ?>)">
</div>
</body>
</html>
codigo ajax:
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function ajax_votar(articulo){
divResultado1 = document.getElementById('votar');
//instanciamos el objetoAjax
ajax=objetoAjax();
ajax.open("GET", "votar.php?articulo="+articulo);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar resultados en esta capa
divResultado1.innerHTML = ajax.responseText;
divResultado1.style.display="block";
}
}
//como hacemos uso del metodo GET
//colocamos null
ajax.send(null);
}
y el PHP:
Código PHP:
<?php
//recibimos la informacion desde ajax.js
$noticia = $_GET['articulo'];
//$noticia = 7588;
//aqui debemos hacer una conexion a una base de datos ej:
include_once('conexion.php');
//$link=conectarse();
//revisamos si tiene datos anteriores el articulo
$sql = mysql_query("select id_noticia from Tecnologia_noticias where id_noticia = '$noticia'", $conexion);
$filas = mysql_fetch_row($sql);
//si se encuentra algun registro de este articulo entonces buscamos cuantos votos tiene
if ($filas > 0) {
$sql2 = mysql_query("select id_noticia, vistas from Tecnologia_noticias where id_noticia = '$noticia'", $conexion);
$array = mysql_fetch_array($sql2);
$votos = $array['vistas'];
$votos_total = $votos + 1;
//aqui actualizamos la tabla con el nuevo resultado
mysql_query("update Tecnologia_noticias set vistas = '$votos_total' where id_noticia = '$noticia' ", $conexion);
} else {
//insertamos el voto ejemplo tabla votacion
mysql_query("insert into Tecnologia_noticias (id_noticia, vistas) values ('$noticia', 1)", $conexion);
}
//hacemos una ultima consulta para ver el total de votos
$sql3 = mysql_query("select id_noticia, vistas from Tecnologia_noticias where id_noticia = '$noticia'",$conexion);
$array3 = mysql_fetch_array($sql3);
$votos3 = $array3['vistas'];
//aqui mostramos la informacion final en el div
echo $votos3;
echo "Han votado por este articulo";
?>