Cita:
Iniciado por dashtrash Si tienes n niveles, con un maximo de n queries a la base de datos, conoces la posición.No es necesario un sistema de bucles.
Es más, si en cada usuario guardas el número de personas que ya tiene debajo de ella, con 1 sola query es suficiente.
Sí, no te lo discuto y además yo soy partidario de utilizar la menor cantidad de código y si puedo reducir la cantidad de bucles para realizar una búsqueda pues mejor que mejor.
De todas formas, mi 1ª respuesta a este post la sigo manteniendo para encontrar un sistema que sea sencillo, fácil de programar y funcional utilizando papel lapiz o excel u otro programa que te permita realizar la tarea que se desea manualmente para despues llevarlo a código.
Lo primero es tener claro lo que se quiere hacer, una matriz forzada ya sea la que sea pero forzada, eso consiste en una matriz general que se irá agrandando a medida que los miembros se vayan incorporando y cada miembro genera una matriz forzada FINITA (ya sea 2x3, 3x5, 5x6, etc) mientras que la general es INFINITA (ya que se va agrandando como dije).
Teniendo en cuenta eso, entonces cada posición tiene una ID y que solo faltará asignar un usuario a esa ID de posición.
Entonces como asignar una ID a cada posición? Yo cojí el excel e hice la siguiente estructura...
[URL="https://mega.co.nz/#!bw4wGYAT!EKWQMWSvrHsHats-POeS0NWODf3zXXWTI_hqfA4eupA"]Excel Matriz[/URL]
De esta manera ví mucho más claro como diseñar la tabla.
Código HTML:
[B]Patrocinador Usuario id_usuario id_matriz[/B]
negocio User1 1 1
User1 User2 2 11
User1 User3 3 12
User2 User4 4 111
User3 User5 5 121
User2 User6 6 112
User1 User7 7 13
User7 User8 8 131
Entonces, con esa estructura de tabla ya sería tan sencillo como buscar a partir de la matriz (usuario) que ha referido el primer hueco vacío para colocar al nuevo miembro.
Por ejemplo:
si el User7 ha sido el último en incorporar un nuevo miembro (User8), pues con solo buscar, a partir de la matriz nº 13, si la matriz nº 131 existe o no y dependiendo el resultado pasar a la siguiente matriz o colocarlo en el 131 que es el caso en el ejemplo de la tabla que he hecho.
Comparto la estructura gráfica de matrizes FINITAS dentro de la matriz general INFINITA para que se mostrar de esta manera cómo el sistema tendría que recorrer la matriz general.
[URL="https://mega.co.nz/#!nkIHhQgI!jxP5tE08Gjwcs9P_oZYlR5lbin322eIKGrAb1O-Ztj0"]Imagen Matriz General[/URL]