Hola a todos,
Estoy desarrollando un formulario php en el cual imprimo en pantalla los campos que vienen de la base de datos, estoy utilizando un foreach con un incremento $i para que cuando el registro tenga más de un domicilio lo pueda imprimir con diferente nombre, a continuación dejo el código de cómo lo imprimo en pantalla:
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"domicilio id<input name='id_domicilio$i' id='id_domicilio$i' value='".$fila['id_domicilio']."'</input>";
echo "<div class='registros' id=''><div class='registros-cinco' id=''>Domicilio</br>";
echo"calle<input name='calle$i' id='calle$i' value='".$fila['calle']."'</input>
número exterior<input type='text' name='numero_exterior$i' id='numero_exterior$i' style='width:50px;' value='".$fila['numero_exterior']."'</input>
número interior<input type='text' name='numero_interior$i' id='numero_interior$i' style='width:50px;' value='".$fila['numero_interior']."'</input>
referencia<input type='text' name='referencia$i' id='referencia$i' value='".$fila['referencia']."'</input></div></br>";
En el name aumenté la variable $i, (name='calle$i'), funciona perfectamente bien, ya que al revisar en el navegador si le cambia el nombre a calle1, calle2, calle3. Mi problema es que al guardar, no realiza la operación correctamente; es decir, que cuando intento el siguiente código, simplemente no guarda en la base de datos correctamente, en sí se cicla y guarda varias veces el mismo campo. A continuación el código:
Código PHP:
<?php
include('conexion.php');
if (isset($_POST['btn1'])) {
$btn = $_POST['btn1'];
$op=$_SESSION['usuario'];
if ($btn = "grabar") {
#variables de la interfaz-----------------------------------------------------------------------------
$i=1;
$id_domicilio = $_POST['id_domicilio$i'];
$calle = $_POST["calle$i"];
$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-------------------
$consulta_general=mysqli_query($con, "SELECT d.id_domicilio, d.calle, u.id_usuario, cu.id_campania from domicilio d, usuarios u, campania_usuario cu where u.usuario = '$op' and cu.id_campania_usuario = cu.id_campania and d.id_domicilio = '$id_domicilio'");
while ($cg = mysqli_fetch_row($consulta_general)) {
$iddom = $cg['0'];
$dmed = $cg['1']; #traemos la posición 0 de la tabla
$pr = $cg['3'];
$pr1 = $cg['3'];
}
foreach ($consulta_general as $consulta) {
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 ('$calle', '$dmed', 'calle', '$pr', '$pr1', '$iddom', 'Domicilio', '$fecha')";
$cs=mysqli_query($con,$consulta); #recibe la conexión y la consulta
}else{
}
$i++;
}
}
}
?>
Pero simplemente no funciona, mi consulta es cómo puedo hacer el ciclo para grabar en la base de datos el cambio por cada campo en un ciclo sin que se repita el guardado como 1000 veces.
Agradezco su apoyo.
Saludos