Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/06/2015, 04:45
Avatar de Benderzuelo
Benderzuelo
 
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Desesperación total con While

Hola compañeros,

llevo horas haciendo pruebas, pero en algo tan sencillo com un WHILE, entro en un bucle infinito que hace que se cuelgue el servidor.

Les voy a poner el código que lo causa pero antes de ello les explicaré que he repasado todo punto por punto, que todas las consultas que tiene el código si las ejecuto en phpmyadmin funcionan perfectamente.

Me pasó lo mismo en otra parte de la aplicación y lo solucioné haciendo la Conexión a la BBDD a mano, porque usaba una clase Mysql, en teoría hago l mismo de manera manual y además el resto de la aplicación está con la clase Mysql y funciona bien.

Bueno como digo en el momento que entra en el while entra en bucle infinito y tumba el server, el while genera este fallo aunque esté totalemente vacío, si quito el while funciona bien pero claro no me devuelve lo que necesito.

A lo mejor el fallo es muy simple y ya no soy capaz de verlo después de horas...

Código PHP:
Ver original
  1. function esDeLaEmpresa($idMod, $idUser, $permiso){
  2.     $cnx1 = mysqli_connect('localhost','user','pass','bbdd');
  3.    
  4.     $sql = "SELECT idRelacion, idPrimario FROM usuariosComunes WHERE idUsuario = $idMod";
  5.    
  6.     $res = mysqli_query($cnx1,$sql);
  7.    
  8.     if($res){
  9.         $row = mysqli_fetch_assoc($res);
  10.        
  11.         $idRelacionMod = $row['idRelacion'];
  12.         $idPrimarioMod = $row['idPrimario'];
  13.        
  14.         $sql1 = "SELECT idUsuario FROM usuariosComunes WHERE idPermiso > $permiso AND idRelacion = $idRelacionMod OR idPrimario = $idPrimarioMod";
  15.        
  16.         $res1 = mysqli_query($cnx1,$sql1);
  17.        
  18.         $ok = 0;
  19.        
  20.         if($res1){
  21.             $row1 = mysqli_fetch_assoc($res1);
  22.            
  23.             $filas = mysqli_num_rows($res1);
  24.            
  25.             if($filas > 1){
  26.                 while($row1){
  27.                     if($row1['idUsuario'] == $idUser){
  28.                         $ok = 1;
  29.                         continue;
  30.                     }
  31.                 }
  32.             }
  33.         }else{
  34.             $ok = 2;
  35.         }
  36.     }else{
  37.         $ok = 3;
  38.     }
  39.     return $ok;
  40. }

A ver si alguien localiza el fallo porque yo ya no soy capaz.

Muchas gracias por adelantado