Foros del Web » Programando para Internet » PHP »

Error en logica con PHP+AJAX

Estas en el tema de Error en logica con PHP+AJAX en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 24/02/2012, 14:02
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
Error en logica con PHP+AJAX

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
  1. <?php
  2.  include('conexion.php');
  3.  $RegistrosAMostrar=1;
  4.  
  5.  //estos valores los recibo por GET de "trebol", trebol rankea a la persona de 1 a 3
  6.   if(isset($_GET['trebol'])){
  7.      $trebol = $_GET['trebol'];
  8.   }
  9.  
  10.  //paginador
  11.   if(isset($_GET['pag'])){
  12.   $RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
  13.   $PagAct=$_GET['pag'];
  14.   //caso contrario los iniciamos
  15.  }else{
  16.   $RegistrosAEmpezar=0;
  17.   $PagAct=1;
  18.  }
  19.  
  20.  
  21.   //******--------determinar las páginas---------******//
  22.  $NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM fotos",$db));
  23.  $PagAnt=$PagAct-1;
  24.  $PagSig=$PagAct+1;
  25.  $PagUlt=$NroRegistros/$RegistrosAMostrar;
  26.  
  27.  //verificamos residuo para ver si llevará decimales
  28.  $Res=$NroRegistros%$RegistrosAMostrar;
  29.  // si hay residuo usamos funcion floor para que me
  30.  // devuelva la parte entera, SIN REDONDEAR, y le sumamos
  31.  // una unidad para obtener la ultima pagina
  32.  if($Res>0) $PagUlt=floor($PagUlt)+1;
  33.  
  34.   //query para buscar la foto y datos del fid de la foto
  35. $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());
  36.  
  37. //si no hay mas paginas no mostrar nada
  38. if($PagAct==$PagUlt){ echo "No hay mas para mostrar";}else{
  39.  
  40.  while($MostrarFila=mysql_fetch_array($Resultado)){
  41.        
  42.         //aca se busca el texto "Sobre mi" de la foto
  43.         $Resultado_sobremi = mysql_query('SELECT texto_sobremi FROM sobremi WHERE quien_sobremi = "'.$MostrarFila["fid_usuario"].'" ORDER BY id_sobremi DESC LIMIT 1',$db);
  44.        
  45.     //aca se realiza la votacion de la persona
  46.     if(isset($trebol)){
  47.     echo "trebol listo"; //esta es una referencia para ver si funciona
  48.     $q_interaccion = mysql_query('INSERT interaccion SET de_interaccion ="'.$_SESSION['fid_username'].'", a_interaccion = "'.$MostrarFila['pertenecea_foto'].'", valor_interaccion = "'.$trebol.'"',$db);
  49.     }
  50.         //aca se muestra la foto que viene de la query con los datos de la misma
  51.         echo '<a href="perfil.php?usuario='.$MostrarFila["fid_usuario"].'"><img src="uploads/'.$MostrarFila["link_foto"].'" /></a>
  52. <p class="texto-normal" style="word-wrap:break-word;">'.mysql_result($Resultado_sobremi, 0).'</p>';
  53.    
  54.             //checkear si el usuario fue votado anteriormente
  55.             $q_checkvotado = mysql_query('SELECT * FROM interaccion WHERE de_interaccion = "'.$_SESSION['fid_username'].'" AND a_interaccion = "'.$MostrarFila['pertenecea_foto'].'"',$db) or die(mysql_error());
  56.        
  57.         $checkvotado = mysql_num_rows($q_checkvotado);
  58.         echo $MostrarFila['pertenecea_foto']."<br>";
  59.         echo $_SESSION['fid_username']."<br>";
  60.         echo $checkvotado."<br>";
  61.         echo $PagAct." pagina activa";
  62.          
  63.  }
  64.  
  65.        
  66.  
  67.  //desplazamiento  
  68.  
  69. echo "<center><table width='270px' border='0'>
  70.  <tr>
  71.    <td>";
  72.     if($PagAct<$PagUlt) echo "<a onclick=\"Pagina('$PagSig', '1')\"><img src='images/si.png' /></a>
  73.     <a onclick=\"Pagina('$PagSig', '2')\"><img src='images/capas.png' /></a>
  74.     <a onclick=\"Pagina('$PagSig', '3')\"><img src='images/nah.png' /></a></td>
  75.  </tr>
  76. </table></center></center><br><br>";
  77. }
  78.  
  79. ?>

Esto es la parte de AJAX:

ajaxpagsingle.js

Código Javascript:
Ver original
  1. function objetoAjax(){
  2.  var xmlhttp=false;
  3.   try{
  4.    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.   }catch(e){
  6.    try {
  7.     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.    }catch(E){
  9.     xmlhttp = false;
  10.    }
  11.   }
  12.   if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  13.    xmlhttp = new XMLHttpRequest();
  14.   }
  15.   return xmlhttp;
  16. }
  17.  
  18. function Pagina(nropagina, trebol){
  19.  //donde se mostrará los registros
  20.  divContenido = document.getElementById('foto-persona');
  21.  
  22.  ajax=objetoAjax();
  23.  //uso del medoto GET
  24.  //indicamos el archivo que realizará el proceso de paginar
  25.  //junto con un valor que representa el nro de pagina
  26.  ajax.open("GET", "mostrar-personas.php?pag="+nropagina+"&trebol="+trebol);
  27.  divContenido.innerHTML= '<img src="anim.gif">';
  28.  ajax.onreadystatechange=function() {
  29.   if (ajax.readyState==4) {
  30.    //mostrar resultados en esta capa
  31.    divContenido.innerHTML = ajax.responseText
  32.   }
  33.  }
  34.  //como hacemos uso del metodo GET
  35.  //colocamos null ya que enviamos
  36.  //el valor por la url ?pag=nropagina
  37.  ajax.send(null)
  38. }

Y donde lo muestro es una simple div en personas.php
__________________
Mi primera web: http://www.mascoteame.com

Etiquetas: html, logica, mysql, registro, sql, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:16.