Ver Mensaje Individual
  #32 (permalink)  
Antiguo 20/02/2017, 02:36
Avatar de Triby
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