Foros del Web » Programando para Internet » PHP »

Guardar Varios registro de una sola vez

Estas en el tema de Guardar Varios registro de una sola vez en el foro de PHP en Foros del Web. Hola ha todos tal vez alguien por aquí en este foro ya ha hecho esto pero tengo una idea de como hacerlo pero he probado ...
  #1 (permalink)  
Antiguo 22/09/2015, 14:31
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Guardar Varios registro de una sola vez

Hola ha todos tal vez alguien por aquí en este foro ya ha hecho esto pero tengo una idea de como hacerlo pero he probado y no me sale, les comento tengo dos tablas
la primera es esta seg_pap esta relacionada con otro tabla
Código MySQL:
Ver original
  1. CREATE TABLE `seg_pap` (
  2.   `seg_pap_id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `jc_usuario_id` int(11) DEFAULT NULL,
  4.   `jc_empresa_id` int(11) DEFAULT NULL,
  5.   `jc_contacto_id` int(11) DEFAULT NULL,
  6.   `jc_actividad_id` int(11) DEFAULT NULL,
  7.   `seg_estatus_id` int(11) DEFAULT NULL,
  8.   `seg_referencia_id` int(11) DEFAULT NULL,
  9.   `seg_pap_fecha_requerimiento` date DEFAULT NULL,
  10.   `seg_pap_fecha_ultimo_contac` date DEFAULT NULL,
  11.   `seg_pap_fecha_proximo_contac` date DEFAULT NULL,
  12.   `jc_unidad_negocio_id` int(11) DEFAULT NULL,
  13.   `seg_pap_observaciones` varchar(500) DEFAULT NULL,
  14.   PRIMARY KEY (`seg_pap_id`),
  15.   KEY `seguimiento_pap_usuario` (`jc_usuario_id`),
  16.   KEY `seguimiento_pap_contacto` (`jc_contacto_id`),
  17.   KEY `seguimiento_pap_estatus` (`seg_estatus_id`),
  18.   KEY `seguimiento_pap_contacto_empresa` (`jc_empresa_id`),
  19.   KEY `seguimiento_pap_unidad_negocio` (`jc_unidad_negocio_id`),
  20.   KEY `seguimiento_pap_actividad` (`jc_actividad_id`),
  21.   KEY `seguimiento_pap_referencia` (`seg_referencia_id`),
  22.   CONSTRAINT `seguimiento_pap_actividad` FOREIGN KEY (`jc_actividad_id`) REFERENCES `seg_actividad` (`jc_actividad_id`),
  23.   CONSTRAINT `seguimiento_pap_contacto` FOREIGN KEY (`jc_contacto_id`) REFERENCES `contacto` (`jc_contacto_id`),
  24.   CONSTRAINT `seguimiento_pap_contacto_empresa` FOREIGN KEY (`jc_empresa_id`) REFERENCES `contacto` (`jc_empresa_id`),
  25.   CONSTRAINT `seguimiento_pap_estatus` FOREIGN KEY (`seg_estatus_id`) REFERENCES `seg_estatus` (`seg_estatus_id`),
  26.   CONSTRAINT `seguimiento_pap_referencia` FOREIGN KEY (`seg_referencia_id`) REFERENCES `seg_referencia` (`seg_referencia_id`),
  27.   CONSTRAINT `seguimiento_pap_unidad_negocio` FOREIGN KEY (`jc_unidad_negocio_id`) REFERENCES `unidad_negocio` (`jc_unidad_negocio_id`),
  28.   CONSTRAINT `seguimiento_pap_usuario` FOREIGN KEY (`jc_usuario_id`) REFERENCES `usuarios_crm` (`jc_usuario_id`)
que es la siguiente el tipo de relación es de uno a muchos
Código MySQL:
Ver original
  1. CREATE TABLE `seg_pap_servicio` (
  2.   `seg_pap_id` int(11) DEFAULT NULL,
  3.   `jc_servicio_id` int(11) DEFAULT NULL,
  4.   `seg_pap_valor_venta` decimal(15,0) DEFAULT NULL,
  5.   KEY `seguimiento_pap_servicio` (`jc_servicio_id`),
  6.   KEY `seguimiento_pap_id` (`seg_pap_id`),
  7.   CONSTRAINT `seguimiento_pap_id` FOREIGN KEY (`seg_pap_id`) REFERENCES `seg_pap` (`seg_pap_id`),
  8.   CONSTRAINT `seguimiento_pap_servicio` FOREIGN KEY (`jc_servicio_id`) REFERENCES `servicio` (`jc_servicio_id`)
ahora bien hasta ahi no hay problema el tema esta al realizar las inserciones pues para la primera no tengo ningun problema lo realizo de la siguiente manera
Código PHP:
Ver original
  1. <?php
  2. require_once('funciones/funciones.php');
  3. $nsp_fecha_requerimiento = cambiarFormatoFecha($_POST['nsp_fecha_requerimiento']);
  4. $nsp_fecha_ultimo_contacto = cambiarFormatoFecha($_POST['nsp_fecha_ultimo_contacto']);
  5. $nsp_fecha_proximo_contacto = cambiarFormatoFecha($_POST['nsp_fecha_proximo_contacto']);
  6. $nsp_data = array('nsp_fecha_requerimiento' => $nsp_fecha_requerimiento,
  7.                   'nsp_fecha_ultimo_contacto' => $nsp_fecha_ultimo_contacto,
  8.                   'nsp_fecha_proximo_contacto' => $nsp_fecha_proximo_contacto,
  9.                   'nsp_contacto' => $_POST['nsp_contacto'],
  10.                   'nsp_contacto_empresa' => $_POST['nsp_contacto_empresa'],
  11.                   'nsp_estatus' => $_POST['nsp_estatus'],
  12.                   'nsp_actividad' => $_POST['nsp_actividad'],
  13.                   'nsp_referencia' => $_POST['nsp_referencia'],
  14.                   'nsp_observaciones' => $_POST['nsp_observaciones'],
  15.                   'cod_user_pap' => $_SESSION['cod_user_pap']);
  16. $nsp_data_pv = array('nsp_programa_1' => $_POST['nsp_programa_1'],
  17.                     'nsp_valor_venta_1' => $_POST['nsp_valor_venta_1'],
  18.                     'nsp_programa_2' => $_POST['nsp_programa_2'],
  19.                     'nsp_valor_venta_2' => $_POST['nsp_valor_venta_2']);
  20. registrar_seguimiento_pap($nsp_data,$nsp_data_pv);
en un array recogo los datos y los envio a mi funcion he aqui el problema porque como ven en la segunda tabla guardo el id y hai el problema porque no se como guardar varios registros enviándolo en distintos campos aquí mi función
Código PHP:
Ver original
  1. function registrar_seguimiento_pap($nsp_data,$nsp_data_pv){
  2.   $link = getConexion();
  3.   $nsp_fecharequerimiento = mysql_real_escape_string($nsp_data['nsp_fecha_requerimiento']);
  4.   $nsp_fechaultimocontacto = mysql_real_escape_string($nsp_data['nsp_fecha_ultimo_contacto']);
  5.   $nsp_fechaproximocontacto = mysql_real_escape_string($nsp_data['nsp_fecha_proximo_contacto']);
  6.   $nsp_contacto = mysql_real_escape_string($nsp_data['nsp_contacto']);
  7.   $nsp_contactoempresa = mysql_real_escape_string($nsp_data['nsp_contacto_empresa']);
  8.   $nsp_estatus = mysql_real_escape_string($nsp_data['nsp_estatus']);
  9.   $nsp_actividad = mysql_real_escape_string($nsp_data['nsp_actividad']);
  10.   $nsp_referencia = mysql_real_escape_string($nsp_data['nsp_referencia']);
  11.   $nsp_observaciones = mysql_real_escape_string($nsp_data['nsp_observaciones']);
  12.   $cod_user_pap = mysql_real_escape_string($nsp_data['cod_user_pap']);
  13.   $query_pap = "INSERT INTO seg_pap(jc_usuario_id,jc_empresa_id,jc_contacto_id,jc_actividad_id,seg_estatus_id,seg_referencia_id,seg_pap_fecha_requerimiento,seg_pap_fecha_ultimo_contac,seg_pap_fecha_proximo_contac,jc_unidad_negocio_id,seg_pap_observaciones) VALUES($cod_user_pap,$nsp_contactoempresa,$nsp_contacto,$nsp_actividad,$nsp_estatus,$nsp_referencia,'$nsp_observaciones')";
  14.   @mysql_query($query_pap, $link) or die(mysql_error());
  15.   $seg_id_pap = mysql_insert_id();
  16.   $query_pap_servicio = "INSERT INTO seg_pap_servicio(seg_pap_id,jc_servicio_id,seg_pap_valor_venta) VALUES";
  17.   foreach ($nsp_data_pv as $key => $value) {
  18.     if (!empty($key) || !empty($value)) {
  19.       $query_pap_servicio.=sprintf("('%s','%s')",trim($key),trim($value));
  20.     }
  21.   }
  22.   $query_pap_servicio = rtrim($query_pap_servicio,',');
  23.   @mysql_query($query_pap_servicio, $link) or die(mysql_error());
  24.   echo $query_pap_servicio;
  25. }
el foreach lo vi en un tutorial pero me quede hai no se si hay otra forma para poder realizar la insercion
  #2 (permalink)  
Antiguo 24/09/2015, 10:52
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: Guardar Varios registro de una sola vez

Hola a todos encontré una solución pero solo me inserta un registro
Código PHP:
Ver original
  1. $seg_id_pap = mysql_insert_id();
  2.   $query_pap_servicio = "INSERT INTO seg_pap_servicio (seg_pap_id,jc_servicio_id,seg_pap_valor_venta) VALUES('".$seg_id_pap."','".$nsp_data_pv['nsp_programa_1']."|".$nsp_data_pv['nsp_programa_2']."','".$nsp_data_pv['nsp_valor_venta_1']."|".$nsp_data_pv['nsp_valor_venta_2']."')";
  3. mysql_query($query_pap_servicio, $link) or die(mysql_error());
cuando hice un alert para ver que guarda lo hace asi
Código MySQL:
Ver original
  1. INSERT INTO seg_pap_servicio(seg_pap_id,jc_servicio_id,sep_pap_valor_venta)VALUES('14','15|14','25000|45000')
el delimitador que uso no separa los string no se si me este faltando algo

Etiquetas: fecha, mysql, registro, sql, tabla, vez
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 08:15.