Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/09/2018, 10:11
madison_sg
 
Fecha de Ingreso: noviembre-2015
Mensajes: 77
Antigüedad: 8 años, 5 meses
Puntos: 2
Respuesta: como guardar en la base de datos con foreach php

Cita:
Iniciado por hhs Ver Mensaje
Creo que te estas complicando, lo que tienes que hacer que los inputs sean arreglos
https://secure.php.net/manual/en/faq...aq.html.arrays
Gracias por tu respuesta, no se si me puedas apoyar un poco más; leí el manual que me enviaste pero al realizar pruebas con los cambios y el grabado en la base de datos solo me hace cambios en el último id, es decir; solamente manda un cambio de los input pero mi registro cuenta con 2 domicilios y no manda los cambios del primer domicilio sino del segundo.

Te envío una fracción del código:
Código PHP:
$consulta mysqli_query($con"SELECT m.*, u.usuario, d.* FROM medico m, usuarios u, domicilio d WHERE u.usuario = '$oper' AND m.id_medico = d.id_medico AND m.id_medico='$id'");


                        
$i 1;
            foreach (
$consulta as $fila) {
                    

echo
"calle<input name='calle' id='calle' value='".$fila['calle']."'</input>"
ahora, para guardar en la base de datos, estoy utilizando el siguiente código:
Código PHP:
$calle $_POST["calle"];
    
    
$tipificacion $_POST['marcacion'];
    
$fecha $_POST['fecha'];
    
$bandera =  $_POST['bandera'];
    
$id_medico $_POST['id_medico'];

    
#consulta para recuperar el id_medico de la tabla para compararlo con el input id_medico-------------------
    
$inp_med=mysqli_query($con"SELECT id_domicilio, calle 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
    
}
    
#consulta que trae el id_usuario de la sesión abierta----------------------------------------------
    
$sesion=mysqli_query($con"SELECT id_usuario FROM usuarios WHERE usuario = '$op'");
    while (
$ope mysqli_fetch_row($sesion)) {
        
$se $ope['0'];
    }
    
#consulta que trae el id_campania y que recibe el id_usuario con la posición 0 con la variable $se-------
    
$sql=mysqli_query($con"SELECT cu.id_campania, u.id_usuario FROM campania_usuario cu, usuarios u where cu.id_campania_usuario = cu.id_campania and cu.id_campania_usuario = cu.id_campania AND u.id_usuario = '$se'");
    while (
$re mysqli_fetch_row($sql)) {
        
$pr $re['0'];
        
$pr1 $re['1'];
    }

    
        

    if (
$calle != $dmed) {

    
#consulta que inserta en la tabla cambio--------------------------------------------------------------
    
$consulta="INSERT INTO cambio (nuevo, anterior, campo, id_campania, id_usuario, id_entidad, entidad, fecha_cambio) values ('$tipo_via', '$dmed', 'tipo_via', '$pr', '$pr1', '$iddom', 'Domicilio', '$fecha')";
    
$cs=mysqli_query($con,$consulta); #recibe la conexión y la consulta
    #insertamos en la tabla vueltas-------------------------------------------------------------------------
        
    
    
                
}else{

            }
        
    }

Son tres consultas con while porque necesito recuperar campos de las otras tablas y de esta forma mandarlos a insertar por posición, pero no me resulta con el input. Me puedes hacer un pequeño ejemplo de cómo grabarlo en la base de datos?.
Saludos y gracias.
__________________
paco alonso