Foros del Web » Programando para Internet » PHP »

Llamar desde dentro de un while de un método a otro metodo de la misma clase

Estas en el tema de Llamar desde dentro de un while de un método a otro metodo de la misma clase en el foro de PHP en Foros del Web. Hola amigas y amigos, verán el problema es que tengo un metodo en el cual hay dentro de el un while, y dentro de este ...
  #1 (permalink)  
Antiguo 07/04/2021, 02:45
 
Fecha de Ingreso: mayo-2012
Mensajes: 750
Antigüedad: 9 años
Puntos: 5
Llamar desde dentro de un while de un método a otro metodo de la misma clase

Hola amigas y amigos, verán el problema es que tengo un metodo en el cual hay dentro de el un while, y dentro de este while se llama a otro método .

El problema es que no consigo que llame a ese metodo.

Despues de hacer muchas pruebas lo que he sacado en claro es que desde dentro de un while no se puede llamar a otros metodos.

Pero esta conclusion a la que he llegado no se si es del todo cierta.

Por eso me gustaria que me dijeran si estoy en lo cierto o hay alguna manera de poder hacerlo.

Miren este es el codigo:

Código PHP:
Ver original
  1. public function metodo_1()
  2.  
  3.     {
  4.         $con = $this->ConectarBbdd();  
  5.  
  6. $sql_datos = "SELECT * FROM tabla";
  7.  
  8.                 $res_datos = mysqli_query($con, $sql_datos) or die ('Lo siento no se han mostrado los datos.' . mysqli_error($con));
  9.  
  10.                 while($fila_datos = mysqli_fetch_assoc($res_datos))
  11.  
  12.                     {
  13.                         $dni_bd = $fila_datos['dni'];
  14.  
  15.                         $cod_asignacion_a_fj_bd = $fila_datos['cod_asignacion_a_fj'];
  16.  
  17.  
  18.  
  19.                         $this->insertar_asignacion();
  20.                     }
  21.  
  22. }
  23.  
  24.  
  25.  
  26. public function insertar_asignacion()
  27.  
  28.     {
  29.         $con = $this->ConectarBbdd();  
  30.  
  31.  
  32.  
  33. $dni = "a";
  34.  
  35. $nombre = "b";
  36.  
  37. $apellidos = "c";
  38.  
  39. $cod_asignacion_a_fj = "d";
  40.  
  41.  
  42.  
  43.         $sql_insertar = "INSERT INTO tabla (dni, nombre, apellidos, cod_asignacion_a_fj) VALUES
  44.  
  45.         ('$dni', '$nombre', '$apellidos', '$cod_asignacion_a_fj')";
  46.  
  47.  
  48.  
  49.         mysqli_query($con, $sql_insertar) or die ('Lo siento pero no se ha insertado en BBDD' . mysqli_error($con));
  50.     }


Gracias de antemano a todos.
  #2 (permalink)  
Antiguo 10/04/2021, 09:50
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 15 años
Puntos: 120
Respuesta: Llamar desde dentro de un while de un método a otro metodo de la misma cla

PHP es un lenguaje lineal, y todo lo que este anidado se ejecutara, siendo los metodos, cualquiera de la clase excepto en las funciones LAMBDA donde el contexto de la variable $this cambia

a lo que puedo deducir es que no se esta ejecutando tu QUERY de sql por algun error de syntaxys o conexion,

supongo que con tu
Código PHP:
Ver original
  1. $con = $this->ConectarBbdd();
obtienes el RESOURCE de tu db para trabajar sobre el, si trabajas sobre la misma tabla o la misma base de datos, recuerda cerrar las conexiones una vez dejes de usarlas y revisa

la documentacion
Código documentacion:
Ver original
  1. Si se usa MYSQLI_USE_RESULT todas la llamadas posteriores retornarán con un error Commands out of sync a menos que se llame a mysqli_free_result()

https://www.php.net/manual/es/mysqli.info.php
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9



La zona horaria es GMT -6. Ahora son las 14:23.