tengo un error de logica la cual no logro encontrar, estoy usando ajax y asincronicamente el usuario cuando vota pasa a la siguiente foto, lo que deseo hacer en realidad es copiar el encuentros de badoo, en realidad hacer algo "parecido", se los digo asi para que entiedan a lo que voy.
El problema con este codigo es que cuando muestro la foto y la voto, me vota la segunda y asi sucesivamente, es decir, voto la primera foto y carga la base de datos con los datos de la segunda, voto la segunda foto y carga la base de datos con los datos de la tercera...
El codigo es bastante sensillo, hay cosas que se obvian como paginacion y demás, pero no logro encontrar que parte es la que me entorpece el codigo, mi idea es que vote la primera foto y se cargue la base de datos con la primera foto...
mostrar-personas.php
Código PHP:
Ver original<?php
include('conexion.php');
$RegistrosAMostrar=1;
//estos valores los recibo por GET de "trebol", trebol rankea a la persona de 1 a 3
if(isset($_GET['trebol'])){ $trebol = $_GET['trebol'];
}
//paginador
$RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
$PagAct=$_GET['pag'];
//caso contrario los iniciamos
}else{
$RegistrosAEmpezar=0;
$PagAct=1;
}
//******--------determinar las páginas---------******//
$PagAnt=$PagAct-1;
$PagSig=$PagAct+1;
$PagUlt=$NroRegistros/$RegistrosAMostrar;
//verificamos residuo para ver si llevará decimales
$Res=$NroRegistros%$RegistrosAMostrar;
// si hay residuo usamos funcion floor para que me
// devuelva la parte entera, SIN REDONDEAR, y le sumamos
// una unidad para obtener la ultima pagina
if($Res>0) $PagUlt=floor($PagUlt)+1;
//query para buscar la foto y datos del fid de la foto
$Resultado=mysql_query("SELECT fotos.pertenecea_foto as pertenecea_foto, usuarios.fid_usuario as fid_usuario, usuarios.nombre_usuario as nombre_usuario, fotos.link_foto as link_foto FROM fotos, usuarios WHERE usuarios.fid_usuario = fotos.pertenecea_foto AND usuarios.check_usuario = 1 ORDER BY fotos.id_foto DESC LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$db) or
die(mysql_error());
//si no hay mas paginas no mostrar nada
if($PagAct==$PagUlt){ echo "No hay mas para mostrar";}else{
//aca se busca el texto "Sobre mi" de la foto
$Resultado_sobremi = mysql_query('SELECT texto_sobremi FROM sobremi WHERE quien_sobremi = "'.$MostrarFila["fid_usuario"].'" ORDER BY id_sobremi DESC LIMIT 1',$db);
//aca se realiza la votacion de la persona
echo "trebol listo"; //esta es una referencia para ver si funciona
$q_interaccion = mysql_query('INSERT interaccion SET de_interaccion ="'.$_SESSION['fid_username'].'", a_interaccion = "'.$MostrarFila['pertenecea_foto'].'", valor_interaccion = "'.$trebol.'"',$db); }
//aca se muestra la foto que viene de la query con los datos de la misma
echo '<a href="perfil.php?usuario='.$MostrarFila["fid_usuario"].'"><img src="uploads/'.$MostrarFila["link_foto"].'" /></a>
<p class="texto-normal" style="word-wrap:break-word;">'.mysql_result($Resultado_sobremi, 0).'</p>';
//checkear si el usuario fue votado anteriormente
$q_checkvotado = mysql_query('SELECT * FROM interaccion WHERE de_interaccion = "'.$_SESSION['fid_username'].'" AND a_interaccion = "'.$MostrarFila['pertenecea_foto'].'"',$db) or
die(mysql_error());
echo $MostrarFila['pertenecea_foto']."<br>";
echo $_SESSION['fid_username']."<br>";
echo $checkvotado."<br>";
echo $PagAct." pagina activa";
}
//desplazamiento
echo "<center><table width='270px' border='0'>
<tr>
<td>";
if($PagAct<$PagUlt) echo "<a onclick=\"Pagina('$PagSig', '1')\"><img src='images/si.png' /></a>
<a onclick=\"Pagina('$PagSig', '2')\"><img src='images/capas.png' /></a>
<a onclick=\"Pagina('$PagSig', '3')\"><img src='images/nah.png' /></a></td>
</tr>
</table></center></center><br><br>";
}
?>
Esto es la parte de AJAX:
ajaxpagsingle.js
Código Javascript
:
Ver originalfunction 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 Pagina(nropagina, trebol){
//donde se mostrará los registros
divContenido = document.getElementById('foto-persona');
ajax=objetoAjax();
//uso del medoto GET
//indicamos el archivo que realizará el proceso de paginar
//junto con un valor que representa el nro de pagina
ajax.open("GET", "mostrar-personas.php?pag="+nropagina+"&trebol="+trebol);
divContenido.innerHTML= '<img src="anim.gif">';
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar resultados en esta capa
divContenido.innerHTML = ajax.responseText
}
}
//como hacemos uso del metodo GET
//colocamos null ya que enviamos
//el valor por la url ?pag=nropagina
ajax.send(null)
}
Y donde lo muestro es una simple div en personas.php