Foros del Web » Programando para Internet » PHP »

Comparar con los últimos 3 resultados

Estas en el tema de Comparar con los últimos 3 resultados en el foro de PHP en Foros del Web. EDITO: Hola, Tengo un sistema de comentarios el cuál guarda la IP del visitante que crea cada comentario. Quiero hacer que cada visitante no pueda ...
  #1 (permalink)  
Antiguo 05/02/2011, 11:24
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 9 meses
Puntos: 8
Comparar con los últimos 3 resultados

EDITO:

Hola,

Tengo un sistema de comentarios el cuál guarda la IP del visitante que crea cada comentario. Quiero hacer que cada visitante no pueda comentar más de 3 veces seguidas. Para esto estoy haciendo lo siguiente:

Código PHP:
Ver original
  1. $query_compruebaip = mysql_query("SELECT user_ip FROM comentarios WHERE id_evento='{$_GET['id']}' ORDER BY fecha DESC LIMIT 2,1");
  2.     $row = mysql_fetch_array($query_compruebaip);
  3.    
  4.     if($row['user_ip'] == $user_ip) {
  5.    
  6.         $query_compruebaip = mysql_query("SELECT user_ip FROM comentarios WHERE id_evento='{$_GET['id']}' ORDER BY fecha DESC LIMIT 1,1");
  7.         $row = mysql_fetch_array($query_compruebaip);
  8.    
  9.         if($row['user_ip'] == $user_ip) {
  10.        
  11.             $query_compruebaip = mysql_query("SELECT user_ip FROM comentarios WHERE id_evento='{$_GET['id']}' ORDER BY fecha DESC LIMIT 0,1");
  12.             $row = mysql_fetch_array($query_compruebaip);
  13.    
  14.             if($row['user_ip'] == $user_ip) {
  15.             $error4 = "Ya has comentado muchas veces";
  16.             } else {
  17.             $error4 = '';
  18.             }
  19.         } else {
  20.             $error4 = '';
  21.         }
  22.        
  23.     } else {
  24.  
  25.     $error4 = '';
  26.     }

Pero me parece que no es nada práctico y puede que me consuma mucho ancho de banda. Alguien tiene un mejor método para lograrlo?
Espero su ayuda

Última edición por kenproxd; 05/02/2011 a las 11:45
  #2 (permalink)  
Antiguo 05/02/2011, 13:24
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Comparar con los últimos 3 resultados

Por que no lees solo las tres ultimas IP de los usuarios (cualquiera) que publicaron en el evento?

Despues solo tienes que comprobar si las 3 corresponden al usuario actual (con un simple while) y, si es el caso, no permitir publicar nuevamente.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 05/02/2011, 15:15
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: Comparar con los últimos 3 resultados

Muchas gracias por tu respuesta.

El problema es que no se como acomodar el while ya que si hago esto:

Código PHP:
Ver original
  1. while ($row = mysql_fetch_array(consulta)) {
  2.  
  3. if ($row['user_ip'] == $user_ip) {
  4.  
  5. $error4 = ...
  6.  
  7. else {
  8.  
  9. $error4 = '';
  10. }
  11.  
  12. }

Bastaria que una de esas 3 IPs obtenidas sea igual a la IP del visitante para que la variable $error4 tenga un valor.
  #4 (permalink)  
Antiguo 05/02/2011, 18:46
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Comparar con los últimos 3 resultados

Cambia la forma en que tienes pensado hacerlo:

Código PHP:
Ver original
  1. // Antes de entrar al while declaras una variable:
  2. $mismo = 0;
  3.  
  4. // Dentro del while:
  5. while(... condicion ...) {
  6.     if($user_ip == $row['user_ip']) {
  7.         // La ip del registro es la misma del usuario
  8.         $mismo ++;
  9.     }
  10. }
  11.  
  12. // Al salir del while:
  13. if($mismo == 3) {
  14.     die('Aqui pones mensaje de error, rediriges o lo que sea que necesites hacer.');
  15. }
  16.  
  17. // Aqui continuas el proceso normal
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 05/02/2011, 19:54
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: Comparar con los últimos 3 resultados

Muchas gracias! problema resuelto.

Un abrazo :)

Etiquetas: comparar, resultados
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 07:08.