Foros del Web » Programando para Internet » PHP »

Pasar una variable de una clase a otra

Estas en el tema de Pasar una variable de una clase a otra en el foro de PHP en Foros del Web. Amigos, estoy tratando de pasar una variable de una clase a otra clase para obtener el mismo id y poder pasarlo a una consulta. La ...
  #1 (permalink)  
Antiguo 12/08/2021, 09:48
 
Fecha de Ingreso: noviembre-2015
Mensajes: 77
Antigüedad: 8 años, 5 meses
Puntos: 2
Pasar una variable de una clase a otra

Amigos, estoy tratando de pasar una variable de una clase a otra clase para obtener el mismo id y poder pasarlo a una consulta. La idea es que cuando se ejecute en el index tome el mismo id ya que instancio las dos clases pero cada una tiene su propia consulta para efectos de que en la segunda clase no me traiga registros repetidos. En la primer clase la consulta esta hecha con un while y en la segunda clase tiene un foreach esto como dije, con la finalidad de que no se repitan los registros de domicilios, a continuación el código:
Código PHP:
<?php 

class medico{
  

    public function 
mostrarMedico(){
    
        try {
    require_once(
'../php/conexion.php');

    
$conn Conexion::conectar();

    
$sql="SELECT * FROM medico ORDER BY RAND() LIMIT 0,1";
    
$resultado=$conn->prepare($sql);
    
$resultado->execute(array($sql));
    while (
$registro=$resultado->fetch(PDO::FETCH_ASSOC)) {
 
echo 
"<input type='text'  name='id_medico' id='id_medico' value='".$registro['id_medico']."'</input>";

echo 
"<div class='container-fluid'>
<label for='datos_medico'>Datos Médico:
<div class='container-fluid' style='border: 1px solid #6F96DF; border-radius: 8px;padding:10px;' id='datos_medico'>
    <div class='row'>
        <div class='col-md-3'>
        <div class='input-group input-group-sm mb-3'>
             <span class='input-group-text' id='inputGroup-sizing-sm'>Apellido Paterno</span>
              <input type='text' class='form-control' aria-label='Sizing example input' aria-describedby='inputGroup-sizing-sm' value='"
.$registro['apellido_paterno']."'</input>
             </div>
            </div>
            <div class='col-md-3'>
             <div class='input-group input-group-sm mb-3'>
             <span class='input-group-text' id='inputGroup-sizing-sm'>Apellido Materno</span>
              <input type='text' class='form-control' aria-label='Sizing example input' aria-describedby='inputGroup-sizing-sm' value='"
.$registro['apellido_materno']."'</input>
             </div>
            </div>
           <div class='col-md-3'>  
         <div class='input-group input-group-sm mb-3'>
             <span class='input-group-text' id='inputGroup-sizing-sm'>Primer Nombre.</span>
              <input type='text' class='form-control' aria-label='Sizing example input' aria-describedby='inputGroup-sizing-sm' value='"
.$registro['nombre_1']."'</input>
             </div>
           </div>
           <div class='col-md-3'>  
            <div class='input-group input-group-sm mb-3'>
             <span class='input-group-text' style='font-size:15px;' id='inputGroup-sizing-sm'>Segundo Nombre</span>
              <input type='text' class='form-control' aria-label='Sizing example input' aria-describedby='inputGroup-sizing-sm' value='"
.$registro['nombre_2']."'</input>
             </div>
               </div>
              </div> 
  <div class='row'>"
;
echo
"<div class='col-md-3'>
        <div class='input-group input-group-sm mb-3'>
             <span class='input-group-text' id='inputGroup-sizing-sm'>Especialidad</span>"
;
echo
"<select class='form-control' aria-label='Sizing example input' aria-describedby='inputGroup-sizing-sm'>";
               echo
"<option value='".$registro['especialidad']."'>".$registro['especialidad']."</option>";
               
#función que recupera los valores desde la db hacia el select
                
$sql_esp="SELECT * FROM especialidades ORDER BY especialidad ASC";           
    
$res=$conn->prepare($sql_esp);
    
$res->execute(array($sql_esp));
    while (
$esp=$res->fetch(PDO::FETCH_ASSOC)) {  
          echo
" <option value='".$esp['especialidad']."'>".$esp['especialidad']."</option>";
           }  
               
            echo
"</select>
      </div>
     </div>"
;
echo
"<div class='col-md-3'>
        <div class='input-group input-group-sm mb-3'>
             <span class='input-group-text' id='inputGroup-sizing-sm'>Sub especialidad</span>"
;
echo
"<select class='form-control' aria-label='Sizing example input' aria-describedby='inputGroup-sizing-sm'>";
               echo
"<option value='".$registro['subespecialidad']."'>".$registro['subespecialidad']."</option>";
               
#función que recupera los valores desde la db hacia el select
                
$sql_subesp="SELECT * FROM especialidades ORDER BY especialidad ASC";           
    
$result=$conn->prepare($sql_subesp);
    
$result->execute(array($sql_subesp));
    while (
$subesp=$result->fetch(PDO::FETCH_ASSOC)) {  
          echo
" <option value='".$subesp['especialidad']."'>".$subesp['especialidad']."</option>";
           }  
               
            echo
"</select>
      </div>
     </div>"
;            
  echo 
"          
           <div class='col-md-3'>  
         <div class='input-group input-group-sm mb-3'>
             <span class='input-group-text' id='inputGroup-sizing-sm'>Cédula Profesional</span>
              <input type='text' class='form-control' aria-label='Sizing example input' aria-describedby='inputGroup-sizing-sm' value='"
.$registro['cedula_profesional']."'</input>
             </div>
           </div>
           <div class='col-md-3'>  
            <div class='input-group input-group-sm mb-3'>
             <span class='input-group-text' style='font-size:15px;' id='inputGroup-sizing-sm'>Cédula Especialista</span>
              <input type='text' class='form-control' aria-label='Sizing example input' aria-describedby='inputGroup-sizing-sm' value='"
.$registro['cedula_especialista']."'</input>
             </div>
               </div>
        </div> 
        <div class='row'>
             <div class='col-md-3'>  
            <div class='input-group input-group-sm mb-3'>
             <span class='input-group-text' style='font-size:15px;' id='inputGroup-sizing-sm'>Teléfono Móvil</span>
              <input type='text' class='form-control' aria-label='Sizing example input' aria-describedby='inputGroup-sizing-sm' value='"
.$registro['telefono_movil']."'</input>
             </div>
            </div> 
             <div class='col-md-3'>  
            <div class='input-group input-group-sm mb-3'>
             <span class='input-group-text' style='font-size:15px;' id='inputGroup-sizing-sm'>Fecha de Nacimiento</span>
              <input type='text' class='form-control' aria-label='Sizing example input' aria-describedby='inputGroup-sizing-sm' value='"
.$registro['fecha_nacimiento']."'</input>
             </div>
               </div>
               
       
         </div>
       </div>
      </div> 
  </div>"
;
  
    }
} catch (
Exception $e) {
    die(
'Error: ' $e->GetMessage());
}
finally{
    
$conn null;
}
    }

}


 
?>
La anterior es la clase médico en donde solo obtengo los datos de un médico, la siguiente es la clase domicilio pero cada médico puede tener más de un domicilio por lo que necesito hacerlo con un foreach y además necesito enviar el id_medico de la clase medico, eso es lo que no me sale, a continuación el código de la clase domicilio:
Código PHP:
<?php 

class Domicilio{
public 
$idMedico;
    public function 
mostrarDomicilio(){
        try {
            require_once 
'../php/conexion.php';

            
$conn Conexion::conectar();
      
$sqlDomicilio "SELECT medico.id_medico as id_medico, domicilio.id_domicilio as id_domicilio, domicilio.id_medico as id_medicod FROM medico medico, domicilio domicilio WHERE medico.id_medico = domicilio.id_medico ORDER BY RAND() LIMIT 0,1";
      
$final=$conn->prepare($sqlDomicilio);
      
$final->execute(array($sqlDomicilio));
      
$i 1;
      foreach(
$final as $fila){
          
  echo 
$idMedico;
        echo 
"".$fila['id_domicilio'];
        echo 
" - ".$fila['id_medico'];
        echo 
" - ".$fila['id_medicod'];

        
$i++;
      }
            

        } catch (
Exception $e) {
            
        }
        

    }
}

 
?>
Por último, así estoy instanciando para el index:
Código PHP:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">

    <!-- jQuery library -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

    <!-- Popper JS -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

    <!-- Latest compiled JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>

    <script src="htts://kit.fontawesome.com/e632f1f723.js" crossorigin="anonimus" ></script>
</head>
<body>

<?php 
require_once('../php/conexion.php');
require 
'../logica/class.medico.php';
require 
'../logica/tiempo.hora.php';
require 
'../logica/class.domicilio.php';

$tiempoHora = new tiempoHora();
$tiempoHora-> fecha();
$clsMedico = new medico();
$clsMedico -> mostrarMedico();
$domicilio = new domicilio();
$domicilio-> mostrarDomicilio();




 
?>
 
 </body>
</html>
__________________
paco alonso

Etiquetas: clase, variable
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 03:52.