Foros del Web » Programando para Internet » PHP »

Crear base de datos simulación matriz forzada 5x7

Estas en el tema de Crear base de datos simulación matriz forzada 5x7 en el foro de PHP en Foros del Web. Te voy a compartir mi función, pero solo para que te hagas una idea de cómo debe de ser, mi script hace muchas más cosas ...

  #31 (permalink)  
Antiguo 18/02/2017, 15:12
 
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

Te voy a compartir mi función, pero solo para que te hagas una idea de cómo debe de ser, mi script hace muchas más cosas a parte de buscar una posición vacía así que no te aferres a esta funcíón porque no te servirá aunque sí tendrás una visión más exacta de cómo debes de desarrollar la tuya.

Código PHP:
      private function getStructure($member) {    
        if(!
in_array($member['Matrix'], $this->refersIn)) {
            
$this->refersIn[] = $member['Matrix'];
            
            if(
$member['Active'] == 1)
                
$this->activeMembers['Active']++;
            else
                
$this->activeMembers['Inactive']++;

            
# Buscamos referidos directos
            
$referrers $this->getReferrers($member['id']);

            if(!
is_null($referrers)) {
                
$this->referring true;

                
$this->setHtml($this->openList());
                foreach (
$referrers as $ref) {
                    
$this->setHtml($this->addMemberTo($ref));

                    
# Buscamos referidos indirectos (siguiente nivel)
                    
$refs $this->getStructure($ref);    
                }
                
$this->setHtml($this->closeList());

                
$this->referring false;
            }

            unset(
$this->array[$member['Matrix']]);
        }    
    } 
A partir de aquí deberías de encontar ya tu solución definitiva pues de esta manera, yo puedo llegar al maximo de niveles de profundidad que pudiese soportar php
  #32 (permalink)  
Antiguo 20/02/2017, 02:36
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Crear base de datos simulación matriz forzada 5x7

Revisa esto: http://www.forosdelweb.com/f18/conve...8/#post4812476

Quieres verificar que un usuario tenga 7 patrocinados como máximo:
Código PHP:
Ver original
  1. // Usando la misma variable de ese ejemplo
  2.  
  3. // Cuántos patrocinados tiene el usuario 1?
  4. echo (isset($members[1])) ? count($members[1] : 0;
  5.     // Resultado: 2
  6.  
  7. // Cuántos patrocinados tiene el usuario 2?
  8. echo (isset($members[2])) ? count($members[1] : 2;
  9.     // Resultado: 4
  10.  
  11. // Verificar máximos
  12. function recorrerPatrocinados($id, $nivel = 1) {
  13.     global $members;
  14.     if(isset($members[$id])) {
  15.           if(count($members[$id]) > 7) {
  16.                 // No debería tener más de 7 patrocinados
  17.                 die('Más patrocinados de los que debería');
  18.           }
  19.           $nivel ++;
  20.           if($nivel > 5) {
  21.                 // Según entiendo, no debería haber llegado aquí... cierto?
  22.                 die('Nivel excedido');
  23.           }
  24.           foreach($members[$id] as $patrocinado) {
  25.                 recorrerPatrocinados($patrocinado, $nivel);
  26.           }
  27.     }
  28. }
  29.  
  30. // Obtener nivel de un usuario
  31. function nivelUsuario($id) {
  32.       $global $members;
  33.       $nivel = 1;
  34.       $sponsor = $members['todos'][$id]['sponsor'];
  35.       while($sponsor > 0) {
  36.              $sponsor = $members['todos'][$sponsor]['sponsor'];
  37.              $nivel ++;
  38.       }
  39.      return nivel;
  40. }

No me he enterado completamente de lo que necesitas, pero, a simple vista, esto parece ser una buena aproximación.
__________________
- León, Guanajuato
- GV-Foto
  #33 (permalink)  
Antiguo 21/02/2017, 10:07
 
Fecha de Ingreso: agosto-2014
Ubicación: barranquilla
Mensajes: 93
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Crear base de datos simulación matriz forzada 5x7

Hola buenos dias Triby, Gracias por responder.

MI problema es el siguientes, estoy creando una aplicación para un negocio multinivel matriz forzada 5*7, negocio tipo referidos.

tengo la siguiente tabla
id Nombre Idref observacion
1 JOSE 0 NEGOCIO
2 JUAN 1 AFILIADO
3 ANA 1 AFILIADO
4 PEDRO 1 AFILIADO

asi puedo llenar todos debajo de un patrocinador cualquiera nivel 1 y 2 por ejemplo JOSE codigo 1 tiene referido a juan , ana, pedro etc.

mi pregunta es la siguiente.

como creo el nivel 3, 4, 5 para identificarlos en la tabla y obtener su afiliados
  #34 (permalink)  
Antiguo 23/02/2017, 16:43
 
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

Aún no has resuelto ni con la función que utilizo yo?
  #35 (permalink)  
Antiguo 27/02/2017, 11:03
 
Fecha de Ingreso: agosto-2014
Ubicación: barranquilla
Mensajes: 93
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Crear base de datos simulación matriz forzada 5x7

No hermano, aun me sigue generando error !!
  #36 (permalink)  
Antiguo 27/02/2017, 14:53
 
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

Cita:
Iniciado por josegaitan123 Ver Mensaje
No hermano, aun me sigue generando error !!
Pero comparte el error, como está el código, todo... de lo contrario te vas a quedar estancado ahí pq no podemos adivinar exactamente lo que te está ocurriendo.

Comparte también lo que te está devolviendo las consultas a la BD cuando quieres conseguir referidos, si es necesario también comparte el archivo .log, todo lo que sea posible compartir.
  #37 (permalink)  
Antiguo 28/02/2017, 19:15
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Crear base de datos simulación matriz forzada 5x7

Y no sería suficiente agregar una columna donde especifiques el nivel de cada usuario? Eso te evitaría tener que recorrer gran cantidad de registros o armar estructuras muy complejas.
__________________
- León, Guanajuato
- GV-Foto
  #38 (permalink)  
Antiguo 28/02/2017, 23:45
 
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

El problema del chico, Triby, tiene que construir una estructura a medida que va creciendo la matriz con lo cual no conoce la posicion que se le asignará al miembro nuevo, para ello tiene que ir recorriendo la marriz hasta que se encuentre una posición libre. Yo ya le pasé la pseudo función como lo hace mi script, peró el se atora ahi, tenemos que esperar a quen comparta los fallos que lanza php.

Etiquetas: matriz, registro, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:54.