PHP - Ayuda en una matriz de 3x5 forzada

 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda en una matriz de 3x5 forzada

Publicado por efren (25 intervenciones) el 18/11/2013 06:07:17
Hola Amigos Estoy Creado una matriz forzada con derrame de 3x 5 niveles
Un Ejemplo

la matriz es de 3 x 5 niveles

nivel 1 = 3 referidos
nivel 2 = 9 referidos
nivel 3 = 27 referidos
nivel 4 = 81 referidos
nivel 5 = 243 referidos

esta debe ser forzada es decir ejemplo:

"Usuario-efren" se registra en el sistema el entra a la matriz en el primer nivel debe invitar 3 referidos para llenar su primer nivel.

el invita a "usuario1" , "usuario2" y "usuario3"

Pero si "Usuario-efren" invita a una 4ta persona esa persona ya no va ir en su primer nivel sino en el segundo.
Pero como el ya tiene sus 3 referidos esta 4ta persona debe de sumarsele a su primer referido que es el "usuario1" pero si el "usuario1" ya tiene sus 3 referidos , entonces esta 4ta persona se le colocara al 2 referido de "usuario-efren" que seria el "usuario2" pero si este "usuario2" ya tiene sus 3 referidos, entonces la 4ta persona se le colocara al 3er referido que seria el "usuario3" y si este usuario ya tiene sus 3 referidos entonces esta 4ta persona se le colocara al primer referido de "usuario1" y si este ya tiene sus 3 referidos se sigue el mismo procedimiento

En esta parte es donde tengpo el problema no se como hacer para seguir esta secuencia

Si alguien conoce de esto y me pueda ayudar le agradeceria mucho

Espero haberme explicado bien
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda en una matriz de 3x5 forzada

Publicado por xve (6935 intervenciones) el 18/11/2013 11:17:45
Hola Efren, a mi modo de ver, puedes hacerlo de dos maneras...

1.- Disponer una tabla con que contenga cada usuario con sus directos, de esta manera, podrías saber a que usuario añadir el nuevo usuario.

2.- Hacer una búsqueda recursiva por la base de datos hasta encontrar el lugar vació donde añadir dicho usuario.

Es lo que se me ocurre ahora mismo... te puede servir?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda en una matriz de 3x5 forzada

Publicado por efren (25 intervenciones) el 18/11/2013 17:16:31
Hola amigo, tengo la tabla

tb_user con los campos id,username,referer

y tengo una segunda tabla llamada matriz con los mismos campos pero no se como realizar la consulta a la base para que ubique al usuario donde le corresponda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda en una matriz de 3x5 forzada

Publicado por xve (6935 intervenciones) el 18/11/2013 18:02:26
Hola efren, por lo que me comentas, tendrás que hacer una función recursiva, que vaya corriendo por todos los usuarios buscando uno que únicamente disponga de menos de 3 referidos...

la función recursiva, tendrás que hacerlo con PHP y en cada uno de sus ciclos, tendrás que hacer la consulta a la base de datos...

Voy a ver si te preparo un ejemplo de función recursiva en PHP sencillo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda en una matriz de 3x5 forzada

Publicado por efren (25 intervenciones) el 18/11/2013 18:26:40
ok amigo te agradezco si me ayudas en ello, ya que tengo todo terminado pero me falta es esa parte de la matriz y quiero dejarlo todo automatizado ya que seria muy tedioso estar agregando el usuario manuelmente, te agradesco si me ayudas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda en una matriz de 3x5 forzada

Publicado por efren (25 intervenciones) el 20/11/2013 20:02:58
hola amigo mire tu ejemplo, pero aun asi no puedo realizar la matriz he decidido crear una tabla para cada nivel con los campos id,username,referido1,referido2,referido3

en los campos referido1 va ir su primer referido
al igual en referido2 va ir su segundo referido
en referido3 su 3er referido

aplique esto

if($referido1==' ' && $referido2== '' && $referido3== '' ){

insertamos en referido1
}

elseif($referido1!=' ' && $referido2== '' && $referido3== '' ){
insertamos en referido 2 xq ya referido1 tiene su usuario

}

elseif($referido1!=' ' && $referido2!= '' && $referido3== '' ){
insertamos en referido3
}


hasta qui bien ya el tiene sus 3 referidos directos, si ya trae una cuarta persona esta se le va colocar a referido1 si el tiene alguno de sus 3 espacios disponibles, sino al referido2 si este tampoco tiene disponible miramos al referido3 y asi sucesivamente hasta ver un espacio disponible,

pero no se como hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda en una matriz de 3x5 forzada

Publicado por xve (6935 intervenciones) el 20/11/2013 21:19:15
Hola Efren, las funciones recursivas son para esto... que yo sepa no hay otra manera de hacerlo.

Ten en cuenta, que puede ser que encuentres un lugar en la 2 linea, en la 10 linea o en la 80 linea...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda en una matriz de 3x5 forzada

Publicado por efren (25 intervenciones) el 24/11/2013 22:13:26
amigo disculpa que te moleste , pero aun no lo he logrado y ya me estoy volviendo loco, tu como que entiendes mejor que yo, seria mucho pedir si me das un ejemplo, igual a lo que estoy tratando de hacer, seria de mucha ayuda,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda en una matriz de 3x5 forzada

Publicado por Carlos (4 intervenciones) el 25/06/2014 02:25:34
Yo tambien estoy desarrollando un sistema parecido. Aunque aun estoy en pruebas siwmpre es conveniente que estos temas lo hagas primero a mano para despues aplicarlo al código (es como lohago yo).

En este caso yo le aplicaria un campo en la base de datos que seria un codigo de posicion por persona. Es decir:
11 -> nivel 1 referido directo 1
12 -> nivel 1 referido directo 2
13 -> nivel 1 referido directo 3

Entonces...
211 -> nivel 2 referido directo 1 ha traido 1er subreferido
212 -> nivel 2 referido directo 1 ha traido 2o subreferido
213 -> nivel 2 referido directo 1 ha traido 3er subreferido

Y asi hasta llegar al 233

Entonces si todos ellos tienen su primer nivel lleno (para ti es tu 2 nivel) entonces poner al nuevo referido en la posicion...

3211 -> 1er referido del 1er referido de tu referido directo 1.

Como hacer eso? Utilizando un bucle for ... next dento de otro bucle for ... next, tantos bucles como jiveles haya... con ese sistema de bucles iras chequeando la posicion por cada usuario hasta encontrar un hueco libre y ese have eco sera el que se le asigne al nuevo usuario.

De esa manera no hay que utilizar tanto bucle IF ya que no es realmente efectivo aunque ocuparía muchas líneas de código para conseguir el resultado deseado..

Yo sé porqué efren ha planteado ese problema, pues yo también trabajo con MLM. El problema no es plantear la base de datos ya que eso es sencillo, simplemente a cada miembro se le asigna el código del patrocinador y listo.

El problema principal, es que el sistema UBIQUE a cada uno en su lugar correspondiente en el sistema teniendo en cuenta que es una matriz FORZADA, si solo fuese una matriz pues con lo que he antes mentado en el primer párrafo es suficiente.

Entonces, es necesario que cada miembro en la matriz se le adjudique una posición dentro de la matriz para que esta sea forzada.

Como quizás con lo que publiqué antes no se haya entendido mejor, adjunto una imagen con la estructura solo hasta un 3er nivel ( ya que si pongo más niveles pues es un coñazo) y con 3 niveles yo creo que ya se capta la mecánica del tema.

[URL="https://www.dropbox.com/s/gm6synasuifzzle/matriz.png"]Ejemplo Id posiciones Matriz 3x3[/URL]

¿Otras ventajas de adjudicar nº posición en la matriz? Pues de esta manera se puede crear un script que dibuje la matriz y teniendo un nº por cada posición sería más sencillo dibujar la matriz.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda en una matriz de 3x5 forzada

Publicado por Cristian Llanos (2 intervenciones) el 16/10/2014 01:06:45
alguien con experiencia en matriz forzada con derrame automatico para diseño de una web.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar