Ver Mensaje Individual
  #13 (permalink)  
Antiguo 12/02/2017, 20:54
Triby2
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: Crear base de datos simulación matriz forzada 5x7

Mira, yo hoy pude solucionar un tema que me ha llevado una semana y media resolver, al final un colega de aquí del foro me hizo ver la luz que no habia visto antes por lo mismo que te está pasando a ti, llegamos a un punto que estamls tan bloqueados que simplemente no podemos pensar con claridad para poder ver otros puntos de vista.

Controlar un siste a de matriz forzada es de lo mas semcillo, lo complicado está en controlar una matriz NO forzada.

En mi comentario anterior te suegria que utilizases dos variables (ramas y niveles).

Cada una la seteas como te plazca, puede ser un binario o una matriz forzada 3x3, 25x30, 5x7, 7x5, como tu prefieras, el control va a ser lo mismo.

Código PHP:
$ramas 5;
$niveles 7
"el sistema verifica si su cédula no esta registrada en la base de datos, si no esta lo inserta en la tabla datos, genera un código tomando el id mayor de la tabla datos sumado con el código del patrocinador"

¿Por qué generar un código así? Simplemente deja que la tabla asigne el código automáticamente mediante la propiedad autoinrement "autoincrement" y de este módo ahorras posibles fallos futuros y líneas de código innecesarias.

"se verifica con una consulta contando cuantos registro tiene en la tabla datos bajo su codigo

Explicado de esa manera no estoy seguro de cómo haces ese proceso, pero de todas formas te muestro como lo hago yo.

Código PHP:
$referidos 'SELECT * FROM usuarios WHERE Sponsor = $id';

$refTotal count($referidos);
# Así se consigue la cantidad de referidos de primer nivel de ese Sponsor.

if ($refTotal != $ramas)
    
# Inserto el usuario en el espacio libre correspondiente de ese nivel
else
    
# Inserto el usuario en el espacio libre correspondiente en el proximo nivel con disponibilidad 
De esta manera ya controlo la matriz forzada. Lee mi anterior comentario a éste para controla la profundidad. Tambien debes de tener en cuenta la lógica que aplicarás cuando la matriz está llena.

Ese diseño de tabla para usuarios ya está bien para trabajar con redes y poder aplicar el ejemplo mio.

Si se quedan en el nivel 2 es porque no estás recorriendo toda la estructura. Para ello tienes que usar una función de recursividad para que haga el recorrido a esa estructura. Es decir, realizar el mismo proceso de comprobación de las ramas, después del "else"

Última edición por Triby2; 12/02/2017 a las 21:00