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$query = mysql_query("SELECT * FROM referidos WHERE ip='".$ip."' AND id_usuario='".$id."'"); // El usuario con IP 12.8.6.23.5 NUNCA ha visitado al usuario con ID 234
// asi que lo registramos
mysql_query("INSERT INTO referidos (ip, id_usuario) VALUES ('".$ip."','".$id."')"); }
// El usuario con IP 12.8.6.23.5 ya ha visitado al usuario con ID 234
// asi que evitamos que lo registre nuevamente
else {
die('Ya has visitado a XXXXXXXXXXX'); }
Luego, si quieres saber cuantos usuarios han visitado a un usuario X, haces un join :
Código PHP:
Ver original$query = mysql_query("SELECT COUNT(u.*) AS cid FROM usuarios AS u, referidos AS r WHERE u.id=r.id_usuario"); 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.