Ver Mensaje Individual
  #6 (permalink)  
Antiguo 24/04/2010, 19:04
Avatar de spider_boy
spider_boy
 
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 5 meses
Puntos: 89
Respuesta: Comprobar y continuar

Lo que te hace falta, es aprender a trabajar con llaves foraneas, para asi poder relacionar 2 tablas. ¿Pero por qué con llaves foreaneas? Porque así te evitas crear un campo por cada referido que pueda tener, el cual no contempla un número finito, así que los campos podría ser infinitos, lo cual no es lo mejor.

Tienes 2 tablas :

1.- Tabla usuarios, donde se guardará el IP del usuario a quien visitamos, y eliminamos el campo 'reffers', ya que la cuenta la podemos hacer sin un este campo.

2.- Tabla referidos, en esta guardaremos las IP's de quienes visitand, y la ID del usuario a quien visitan.

Código:
// Usuarios

ID       |    IP

234    |    1.2.3.4.5.6.7
342    |    2.8.7.2.1.2.3
Código:
// Referidos

ID      |      IP                   |      ID_USUARIO
12     |    12.8.6.23.5       |          234
13     |     2.34.46.67       |          342
Ahora, como sería el proceso de registro de la visita al usuario.

El usuario con IP 12.8.6.23.5 (tabla referidos) visita al usuario con ID 234 (tabla usuarios). Preguntamos a la tabla referidos, si la IP existe, y a quien visitó :

Código PHP:
Ver original
  1. $query = mysql_query("SELECT * FROM referidos WHERE ip='".$ip."' AND id_usuario='".$id."'");
  2. // El usuario con IP 12.8.6.23.5  NUNCA ha visitado al usuario con ID 234
  3. // asi que lo registramos
  4. if(mysql_num_rows($query) == 0) {
  5.      mysql_query("INSERT INTO referidos (ip, id_usuario) VALUES ('".$ip."','".$id."')");
  6. }
  7. // El usuario con IP 12.8.6.23.5  ya ha visitado al usuario con ID 234
  8. // asi que evitamos que lo registre nuevamente
  9. else {
  10.     die('Ya has visitado a XXXXXXXXXXX');
  11. }


Luego, si quieres saber cuantos usuarios han visitado a un usuario X, haces un join :


Código PHP:
Ver original
  1. $query = mysql_query("SELECT COUNT(u.*) AS cid FROM usuarios AS u, referidos AS r WHERE u.id=r.id_usuario");
  2. $result = mysql_fetch_array($query);
  3. echo $result['cid'];

Creo que es la mejor manera para estos casos... trabajar con 2 tablas distintas.

Espero que hayas entendido algo de lo que escribí . Si no, solo pregúntame y trataré de explicarte.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.