Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como guardar una consulta en una variable PHP

Estas en el tema de Como guardar una consulta en una variable PHP en el foro de PHP en Foros del Web. Hola a todos, Tengo una consulta SQL en un formularios PHP, necesito guardarla en una variable para poder pasarla en un INSERT INTO, la cuestión ...
  #1 (permalink)  
Antiguo 26/09/2018, 10:08
 
Fecha de Ingreso: noviembre-2015
Mensajes: 49
Antigüedad: 2 años, 11 meses
Puntos: 2
Como guardar una consulta en una variable PHP

Hola a todos,

Tengo una consulta SQL en un formularios PHP, necesito guardarla en una variable para poder pasarla en un INSERT INTO, la cuestión es que tiene para un id varios registros, es decir:

-----------------
1 | calle |
-----------------
1 | boulevard |
-----------------
1 | avenida |
-----------------
2 | calzada |
-----------------
2 | circuito |
-----------------

La intención es que al guardar la consulta en una variable me respete el incremento de los registros de cada id porque lo voy a guardar en otra tabla con cada elemento que tenga el registro.
La cuestión es que al utilizar un while, solamente me trae la última posición del id como sería solamente la avenida en el caso del id = 1.
El código de mi while es el siguiente:
Código PHP:
$inp_med=mysqli_query($con"SELECT id_domicilio, tipo_via FROM domicilio WHERE id_medico = '$id_medico'");
    while (
$didmed mysqli_fetch_row($inp_med)) {
        
$iddom $didmed['0'];
        
$dmed $didmed['1']; #traemos la posición 0 de la tabla
    

En el anterior código solo puedo traer la posición horizontal con el último registro,
también intenté hacer un foreach, pero no he tenido éxito porque seguramente no lo estoy realizando correctamente, a continuación el foreach:
Código PHP:
$i=1;
    
$inp_med=mysqli_query($con"SELECT id_domicilio, tipo_via FROM domicilio WHERE id_medico = '$id_medico'");
    foreach (
$inp_med as $dmed) {
        
$result[$i] = $dmed;
        
$i++;
    } 
Pero la verdad no hace nada, me pueden ayudar a corregir el código para que me traiga las posiciones horizontales y verticales de la consulta en una variable.
Gracias y saludos.
__________________
paco alonso
  #2 (permalink)  
Antiguo 26/09/2018, 13:13
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.387
Antigüedad: 3 años, 3 meses
Puntos: 253
Respuesta: Como guardar una consulta en una variable PHP

si te das cuenta que estas haciendo el where sobre un campo que no estas trayendo

debería ser así:
Código PHP:
Ver original
  1. "SELECT id_medico, id_domicilio, tipo_via FROM domicilio WHERE id_medico = '$id_medico'");

claro colocalo en el orden que va pues no se cual va primero
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 26/09/2018, 14:32
 
Fecha de Ingreso: noviembre-2015
Mensajes: 49
Antigüedad: 2 años, 11 meses
Puntos: 2
Respuesta: Como guardar una consulta en una variable PHP

Cita:
Iniciado por xfxstudios Ver Mensaje
si te das cuenta que estas haciendo el where sobre un campo que no estas trayendo

debería ser así:
Código PHP:
Ver original
  1. "SELECT id_medico, id_domicilio, tipo_via FROM domicilio WHERE id_medico = '$id_medico'");

claro colocalo en el orden que va pues no se cual va primero
Gracias por tu respuesta, pero la consulta es correcta; al ejecutarla en el SQL de phpmyadmin trae los datos correctos, es decir: tiene el tipo_via y el id_domicilio correctos que corresponden a la variable '$id_medico' que viene de l input de la interfaz gráfica del formulario. Estoy trabajando con tablas relacionales por lo que no es necesario traer el campo antes del where. Lo que requiero es guardar esta consulta en una variable dinámica para que me traiga el resto de la información contenida con su id. Te explico un poco más, cada uno de los registros que cuentan con el mismo id, corresponden a inputs dinámicos que tienen el mismo name="tipo_via[$i]" por obvias razones, si tiene el mismo nombre no se podría guardar cada uno de los registros en la otra base de datos, entonces lo que hago es que guardo en variables los campos y los incremento con $i++, esto funciona perfecto cuando se trata de solamente los campos, pero como la variable dinámica que requiero no viene de la interfaz gráfica sino por consulta de la base de datos; necesito meter esa consulta en una variable.

Espero haberme dado a entender.
Nuevamente agradezco tu ayuda y espero me puedas ayudar con esta información.
Saludos
__________________
paco alonso
  #4 (permalink)  
Antiguo 27/09/2018, 09:08
 
Fecha de Ingreso: noviembre-2015
Mensajes: 49
Antigüedad: 2 años, 11 meses
Puntos: 2
Respuesta: Como guardar una consulta en una variable PHP

Bueno, ya que en este foro solo te contestan una vez y nunca te dan seguimiento, pues para variar ya solucioné mi código yo solo.
Les dejo la solución por si a alguien le sirve:
Código PHP:
$inp_med="SELECT d.id_domicilio, d.tipo_via, m.id_medico, d.id_medico FROM domicilio d, medico m WHERE d.id_medico = m.id_medico and d.id_medico = '$id_medico'"

    
$result mysqli_query($con,$inp_med)or die (mysqli_error()); 
    
$row mysqli_fetch_array($result); 
    
$num_resul=mysqli_num_rows($result); 

    
#while($i <= $num_resul){

    
for ($i=1$i <= ($num_resul); ++$i){  
        echo 
"malditooincr".$i;
        
$inp_med1="SELECT d.id_domicilio, d.tipo_via, m.id_medico, d.id_medico, m.especialidad FROM domicilio d, medico m WHERE d.id_medico = m.id_medico and d.id_medico = '$id_medico'";

        
$result1 mysqli_query($con,$inp_med1);
        
$row1 mysqli_fetch_row($result1);

        
$dmed[$i] = $row1['1']; 
        echo 
"<br>";
        echo 
"fila dentro while: ".$dmed[$i];
        echo 
"otromalditooincr".$i.$dmed[$i];
        
    } 
Se puede hacer con for o con while.
Saludos.
__________________
paco alonso
  #5 (permalink)  
Antiguo 27/09/2018, 11:47
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.387
Antigüedad: 3 años, 3 meses
Puntos: 253
Respuesta: Como guardar una consulta en una variable PHP

Bueno respondiendo a l primero, no se trata de que te respondan una sola vez, se trata de que aquí intentamos ayudar con nuestros conocimientos durante el poco tiempo libre que tengamos pues también trabajamos en proyectos y con clientes, así que te imaginaras como estamos algunos de tiempo.

Segundo, veo que al final implementaste lo que te comente así que no le veo mayor problema, el asunto es que no le veo pie ni cabeza a lo que haces y el porque, pues me parece bastante enredado, sin mas detalles o detalles mas claros no te podría orientar sobre un método mejor de normalizar tu base de datos cosa que veo que necesitas por como estas haciendo las cosas.

Te recomendaría que revisaras tus tablas y analizaras como se están relacionando los datos y si están bien normalizadas, pues en el futuro tendrías muchos problemas de rendimiento.

En todo caso felicitaciones por tu solución, esa es la idea, explotar el cerebro hasta hallar la solución, pues sin internet no se rías un programador si no más bien un simple mortal.

Saludos.
__________________
[email protected]
HITCEL



La zona horaria es GMT -6. Ahora son las 01:08.