Foros del Web » Programando para Internet » PHP »

Insertar varias líneas con mismos datos pero diferente "ID"

Estas en el tema de Insertar varias líneas con mismos datos pero diferente "ID" en el foro de PHP en Foros del Web. Buenas tardes a todos, os cuento la duda que tengo a ver si me podéis ayudar. Os pongo en situación. Tengo una aplicación con lo ...
  #1 (permalink)  
Antiguo 21/07/2015, 07:12
Avatar de Jvgaas7  
Fecha de Ingreso: julio-2015
Mensajes: 40
Antigüedad: 8 años, 9 meses
Puntos: 1
Pregunta Insertar varias líneas con mismos datos pero diferente "ID"

Buenas tardes a todos, os cuento la duda que tengo a ver si me podéis ayudar.
Os pongo en situación.
Tengo una aplicación con lo siguientes estructura de datos:

Una referencia tiene varios expedientes, de tal forma que:
Referencia S1
-Expediente A
-Expediente B
...

En mi base de datos tengo las siguientes tablas:

Tabla Historia: donde cada vez que ejecuto una acción me guarda un registro.
Tabla básica: cada vez que guardo un registro se me actualizan

¿Qué problema tengo?

Pues que cada vez que le de a guardar solo me guarda una línea de historia y no 3,4 o los que sea por expediente.


os pongo el código PHP, aunque lo que necesito es cómo decirle en una sentencia SQL que me añada una línea por expediente.

No sé si ha quedado claro....

Gracias!!


Código PHP:
<?php

    
/*codigo desde principal.php*/
/*header("Location: tdx.php?expediente=".$f['expediente']);
    /*Compara el valor de la variable cogida desde la base de datos y la compara con la busqueda realizada
    si esa condicion se cumple, ....*/
    
if ($referencia=$_GET["referencia"]){
require(
"../models/conexionBD.php");
    
$res=mysqli_query($conexion"SELECT * FROM basica WHERE ref_cortas = '$referencia'  ORDER BY id_basica desc");
    

    }

    if(
$expediente=$_GET["expediente"]){

    require(
"../models/conexionBD.php");
    
$res=mysqli_query($conexion"SELECT * FROM basica WHERE expediente = '$expediente'  ORDER BY id_basica desc");
    
    }


    if(
$autos=$_GET["autos"]){

    require(
"../models/conexionBD.php");
    
$res=mysqli_query($conexion"SELECT * FROM basica WHERE autos = '$autos'  ORDER BY id_basica desc");
    
    }

/*Se escribe abajo para no tepetir el mismo codigo en todas las sentencias. En $data se guarda como si fuera un array los datos de las columnas de la bd*/
    
$data=mysqli_fetch_array($res);
     
mysqli_close($conexion);


    
/* if ($id_actividad=$_GET["id_actividad"]){
require("../models/conexionBD.php");
    $res=mysqli_query($conexion, "SELECT * FROM actividad WHERE id_actividad = '$id_actividad'  ORDER BY id_actividad desc");*/

?>
Código PHP:
<?php

/*Inicializamos las variables*/

/*Valores para ingresar en campos ocultos de la tabla*/

$id_actividad             '';
$referencia             '';
$expediente                '';
$principal                '';
$intereses                 '';
$importetotal             '';
$cartera                 '';
$cuantia                 '';
$calificacionCredito     '';
$importeCredito         '';
$cuantiaReclamada         '';
$Juzgado                 '';
$numJuzgado             '';
$FechaSubrogacion         '';
$FechaCopiaSellada         '';
$PartidoJudicial         '';
$autos                    '';
$faseTDX                 '';
$estadoTDX                 '';
$actuacionProcesal         '';
$fechaActuacion         '';
$impuso                 '';
$tipoImpulso             '';
$fechaImpulso              '';
$embargo                 '';
$fechaEmbargo             '';
$tipoEmbargo               '';
$comentarios             '';


/*variables modificables*/

$pagos                  '';
$sucesion                 '';
$situacionPJ              '';
$fechaSJ                  '';
$poder                  '';
$procurador              '';
$procuradorDefinitivo      '';
$procuradorEmail          '';
$comentarioInterno      '';




/*if(isset($_GET["referencia"])) {


}*/

 
if(isset($_REQUEST["enviar"])){
     

    
/*Valores para ingresar en campos ocultos de la tabla*/

    
$referencia             $_POST['referencia'];
    
$expediente                $_POST['expedienteTDX'];
    
$principal                $_POST['principal'];
    
$intereses                 $_POST['intereses'];
    
$importetotal             $_POST['importetotal'];
     
$cartera                 $_POST['carteraTDX'];
     
$cuantia                 $_POST['cuantiaProcedimientoTDX'];
     
$calificacionCredito     $_POST['calificacionTDX'];
     
$importeCredito         $_POST['importeTDX'];
     
$cuantiaReclamada         $_POST['cuantiaReclamadaTDX'];
     
$FechaSubrogacion         $_POST['fechaSubrogacionTDX'];
     
$FechaCopiaSellada         $_POST['fechaCopiaSelladaTDX'];
     
$Juzgado                 $_POST['juzgadoTDX'];
     
$numJuzgado             $_POST['numJuzgadoTDX'];
     
$PartidoJudicial         $_POST['partidoJudicialTDX'];
     
$autos                     $_POST['autos'];
     
$faseTDX                 $_POST['faseTDX'];
     
$estadoTDX                 $_POST['estadoTDX'];
      
$actuacionProcesal         $_POST['actuacionTDXFormulario'];
      
$fechaActuacion         $_POST['fechaUltimaActuacionTDXFormulario'];    
      
$impuso                 $_POST['impulsoTDXFormulario'];
      
$tipoImpulso             $_POST['tipoImpulsoTDXFormulario'];
      
$fechaImpulso             $_POST['fechaImpulsoTDXFormulario'];
      
$embargo                 $_POST['embargoTDXFormulario'];
      
$fechaEmbargo             $_POST['fechaEmbargoTDX'];
      
$tipoEmbargo              $_POST['tipoEmbargoTDX'];
      
$comentarios             $_POST['comentariosTDX'];
Código PHP:
      /*variables modificables*/

      
$pagos                  $_POST['pagos'];
    
$sucesion                 $_POST['sucesion'];
    
$situacionPJ              $_POST['situacionpj'];
    
$fechaSJ                  $_POST['fechasj'];
    
$poder                  $_POST['poder'];
    
$procurador              $_POST['procurador'];
    
$procuradorDefinitivo      $_POST['procuradorDefinitivo'];
    
$procuradorEmail          $_POST['procuradorEmail'];
    
$comentarioInterno      $_POST['comentarioInterno'];





require(
"../models/conexionBD.php");

    
/*SQL con los campos de la aplicacion*/
    

/*Guarda en la tabla actividad los cambios realizados. Recordamos que esta tabla es el historial.*/
$peticion=     "INSERT INTO actividad (cartera, expediente, ref_cortas, principal, intereses, importe_total, 
                cuantia_procedimiento, calificacion_credito, importe_credito, cuantia_reclamada, fecha_subrogacion, fecha_copia, juzgado, numero_juzgado, partido_judicial,
                autos, fase, estado, actuacion_procesal, fecha_actuacion, impulso, tipo_impulso, fecha_impulso, embargo, fecha_embargo, tipo_embargo,
                comentarios, comentario_interno, pagos, sucesion_nstra, situacion_pj, fecha_sj, poder, procurador_nombre, procurador_definitivo, procurador_email) 
              VALUES  ('$cartera', '$expediente', '$referencia', '$principal', '$intereses', '$importetotal', '$cuantia', '$calificacionCredito', '$importeCredito', 
                     '$cuantiaReclamada', '$FechaSubrogacion', '$FechaCopiaSellada', '$Juzgado', '$numJuzgado', '$PartidoJudicial', '$autos', '$faseTDX',
                     '$estadoTDX', '$actuacionProcesal', '$fechaActuacion', '$impuso', '$tipoImpulso', '$fechaImpulso', '$embargo', '$fechaEmbargo', 
                      '$tipoEmbargo', '$comentarios', '$comentarioInterno', '$pagos', '$sucesion', '$situacionPJ','$fechaSJ', '$poder', '$procurador', 
                      '$procuradorDefinitivo', '$procuradorEmail') "

Código PHP:
$sqlPagos "UPDATE basica SET pagos ='$pagos' WHERE ref_cortas = '$referencia'";
$sqlsucesion "UPDATE basica SET sucesion_nstra = '$sucesion' WHERE ref_cortas = '$referencia'";
$sqlsituacionPJ "UPDATE basica SET situacion_pj = '$situacionPJ' WHERE ref_cortas = '$referencia'";
$sqlfechaSJ "UPDATE basica SET fecha_sj = '$fechaSJ' WHERE ref_cortas = '$referencia'";
$sqlpoder "UPDATE basica SET poder = '$poder' WHERE ref_cortas = '$referencia'";
$sqlprocurador "UPDATE basica SET procurador_nombre = '$procurador' WHERE ref_cortas = '$referencia'";
$sqlprocuradorDefinitivo "UPDATE basica SET procurador_definitivo = '$procuradorDefinitivo' WHERE ref_cortas = '$referencia'";
$sqlprocuradorEmail "UPDATE basica SET procurador_email = '$procuradorEmail' WHERE ref_cortas = '$referencia'";
$sqlcomentarioInterno "UPDATE basica SET comentario_interno = '$comentarioInterno' WHERE ref_cortas = '$referencia'";

mysqli_query($conexion$peticion);
mysqli_query($conexion$sqlPagos);
mysqli_query($conexion$sqlsucesion);
mysqli_query($conexion$sqlsituacionPJ);
mysqli_query($conexion$sqlfechaSJ);
mysqli_query($conexion$sqlpoder);
mysqli_query($conexion$sqlprocurador);
mysqli_query($conexion$sqlprocuradorDefinitivo);
mysqli_query($conexion$sqlprocuradorEmail);
mysqli_query($conexion$sqlcomentarioInterno);
mysqli_close($conexion);
header("Location: modal.html"); 
  #2 (permalink)  
Antiguo 21/07/2015, 07:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Insertar varias líneas con mismos datos pero diferente "ID"

OFF TOPIC en MySQL.
No se permite codigo de programación en los foros de BBDD, sólo SQL.

Muevo para no tener que borrar todo el script PHP, sin el cual el tema no tiene sentido.

Por otro lado, te aclaro que tu problema no es de SQL, sino de PHP: Tienes que iterar las inserciones, enviando una por cada línea que la tabla debe almacenar, o bien masivamente creando un insert de múltiples VALUE, donde cada uno corresponda a cada linea:
Código SQL:
Ver original
  1. INSERT INTO ....
  2. VALUES (...), (...), (...), ...

Los set de valores del VALUES para cada registro los deberás generar dinámicamente en PHP.


Psdata:
No le encuentro ningun sentido a este codigo:
Código PHP:
Ver original
  1. $sqlPagos = "UPDATE basica SET pagos ='$pagos' WHERE ref_cortas = '$referencia'";
  2. $sqlsucesion = "UPDATE basica SET sucesion_nstra = '$sucesion' WHERE ref_cortas = '$referencia'";
  3. $sqlsituacionPJ = "UPDATE basica SET situacion_pj = '$situacionPJ' WHERE ref_cortas = '$referencia'";
  4. $sqlfechaSJ = "UPDATE basica SET fecha_sj = '$fechaSJ' WHERE ref_cortas = '$referencia'";
  5. $sqlpoder = "UPDATE basica SET poder = '$poder' WHERE ref_cortas = '$referencia'";
  6. $sqlprocurador = "UPDATE basica SET procurador_nombre = '$procurador' WHERE ref_cortas = '$referencia'";
  7. $sqlprocuradorDefinitivo = "UPDATE basica SET procurador_definitivo = '$procuradorDefinitivo' WHERE ref_cortas = '$referencia'";
  8. $sqlprocuradorEmail = "UPDATE basica SET procurador_email = '$procuradorEmail' WHERE ref_cortas = '$referencia'";
  9. $sqlcomentarioInterno = "UPDATE basica SET comentario_interno = '$comentarioInterno' WHERE ref_cortas = '$referencia'";
  10.  
  11. mysqli_query($conexion, $peticion);
  12. mysqli_query($conexion, $sqlPagos);
  13. mysqli_query($conexion, $sqlsucesion);
  14. mysqli_query($conexion, $sqlsituacionPJ);
  15. mysqli_query($conexion, $sqlfechaSJ);
  16. mysqli_query($conexion, $sqlpoder);
  17. mysqli_query($conexion, $sqlprocurador);
  18. mysqli_query($conexion, $sqlprocuradorDefinitivo);
  19. mysqli_query($conexion, $sqlprocuradorEmail);
  20. mysqli_query($conexion, $sqlcomentarioInterno);
  21. mysqli_close($conexion);
  22. header("Location: modal.html");

¿Si todos actaulzian el mismo registro, ¿por que no lo pones en uno sólo? ¿Por qué todos esos UPDATE?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/07/2015, 07:47
Avatar de Jvgaas7  
Fecha de Ingreso: julio-2015
Mensajes: 40
Antigüedad: 8 años, 9 meses
Puntos: 1
Respuesta: Insertar varias líneas con mismos datos pero diferente "ID"

Primero, disculpar por ello, pensé que era en ese apartado. No volverá a ocurrir.

Con respecto a crear una inser into por cada línea es una cosa que he pensado, pero dependiendo de la referencia tendrá más o menos... no son regulares.

Con respecto al final, lo hago así para ver si me coge todo y me lo actualiza. Una vez que todo tenga funcionalidad corregiré esos "defectos" de código.

gracias!
  #4 (permalink)  
Antiguo 21/07/2015, 08:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Insertar varias líneas con mismos datos pero diferente "ID"

Cita:
Con respecto a crear una inser into por cada línea es una cosa que he pensado, pero dependiendo de la referencia tendrá más o menos... no son regulares.
Bueno, regulariza los INSERT cuando sean de la misma tabla, poniendo la totalidad de los campos de la tabla (excepto el ID, si es AI), y pones NULL o vacío en aquellos datos qu eno llegan.
Eso para no complicarte la explicación, porque hacerlo con cantidades de campo variables es perfectamente posible.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 21/07/2015, 08:24
Avatar de Jvgaas7  
Fecha de Ingreso: julio-2015
Mensajes: 40
Antigüedad: 8 años, 9 meses
Puntos: 1
Respuesta: Insertar varias líneas con mismos datos pero diferente "ID"

Si me lo explicas con variables te lo agradecería.

Etiquetas: mysql, sentencias, sql
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:09.