Foros del Web » Programando para Internet » PHP »

Registrar Varios Registros A La Vez En Una Tabla

Estas en el tema de Registrar Varios Registros A La Vez En Una Tabla en el foro de PHP en Foros del Web. Holas muchachos,necesito registrar varios registros a la vez en una tabla determinada de una base de datos.Nose si me podrian ayudar con esto'¡¡¡¡.De antemano muchisimas ...
  #1 (permalink)  
Antiguo 03/04/2007, 07:53
 
Fecha de Ingreso: octubre-2006
Mensajes: 79
Antigüedad: 17 años, 5 meses
Puntos: 0
Registrar Varios Registros A La Vez En Una Tabla

Holas muchachos,necesito registrar varios registros a la vez en una tabla determinada de una base de datos.Nose si me podrian ayudar con esto'¡¡¡¡.De antemano muchisimas gracias.¡¡¡¡¡¡
  #2 (permalink)  
Antiguo 03/04/2007, 07:57
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 2 meses
Puntos: 10
Re: Registrar Varios Registros A La Vez En Una Tabla

Hola,
a q te refieres con registrar varios registros?
podrias detallar mas tu problema?

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #3 (permalink)  
Antiguo 03/04/2007, 08:03
 
Fecha de Ingreso: octubre-2006
Mensajes: 79
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Registrar Varios Registros A La Vez En Una Tabla

Por ejemplo:Yo quiero registrar el registro de una determinada factura.Como sabrás tiene una cabecera y un detalle.En el detalle es mi problema,xq para esto tengo que editar todos los productos con sus respectivas cantidades y precios que se han comprado.es por esto que necesito editar varios registros y luego registrarlos en una base de datos utiloizando PHP.Muchas gracias por ponerme atencion¡¡¡¡.
  #4 (permalink)  
Antiguo 13/05/2007, 09:06
Avatar de marceloSQL  
Fecha de Ingreso: mayo-2007
Ubicación: Buenos Aires, San Isidro
Mensajes: 4
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Registrar Varios Registros A La Vez En Una Tabla


/*12 de mayo de 2007*/
/* Programa _prgNumeracionRemitos

Autor: Marcelo Di Deo - [email protected]

Fecha de Creacion: Sabado 12 de Mayo de 2007
Tiempo estimado de aprendizaje teorico: 12 horas
Tiempo para implementacion: 2 horas
Me he basado en el ejemplo que dio Daniel donde explica como moverse en un cursor,
y he agregado un recurso que ayudara a quienes deban trabajar con tablas CABECERA DETALLE
reemplazando el viejo metodo COBOL, Pascal o clipper de Corte de Control.

Si alguien cree que es un ejemplo muy burdo, por favor sepan disculpar. Creanme,
es mi primer programa estructurado de SQL. Solo sabia hacer las operaciones basicas
de SP para ABM , o traer un select y pasarlo via XML

Proposito: Generar la cabecera a partir de un conjunto de registros detalle
Si se quiere llamar Tablas Padre-HIJO/HIJA, CABECERA-DETALLE.
Estos registros detalle estan el la tabla PrestacionesGrabadas
La Cabecera esta en la tabla Remitos.
Para preparar los datos del registro CABECERA se genera un cursor
que pretende realizar un calculo que en DOS lo doy con cortes de control
previamente a preparar los datos con un indice al efecto.

En lo que respecta exclusivamente al proposito particular, para el caso de facturacion
por cuenta y orden en un circulo medico, se logra Numerar Remitos en un rango
conocido de prestaciones grabadas.
Comentarios: A diferencia de otros

CONCLUSION: Si no lo valoro, otro se estara aprovechandose de mi esfuerzo.
VALORO MI ESFUERZO
Esto es lo que el foro tiene en consecuencia de un conjunto de buenas acciones
Ojala podamos continuar aportando

Doy garantia que funciona eficientemente. Las pruebas las estoy haciendo sobre una tabla de
mas de 4.000.000 de registros y procesa en menos de 5 segundos.

Leer por favor el PROPOSITO para entender todos los pasos siguientes

*/

Begin Transaction
DECLARE
@nidEstado Int,
@nIdObraSocial Int,
@nAno Int,
@nMes Int,
@nTotalHonorarios Dec(9,3),
@nTotalGastos Dec(9,3),
@i Int,
@nTope Int,
@nNuevoId Int,
@cDescripcion VarChar(80)

Declare
CurRemitos CURSOR FOR
SELECT idObraSocial idObraSocial,
Year(FechaPrestacion) Ano,
Month(FechaPrestacion) MES,
Sum (ImporteHonorarios) TotalHonorarios,
Sum (ImporteGastos) TotalGastos
from
Nexus7.dbo.PrestacionesGrabadas
Group By idObraSocial,
Month(FechaPrestacion),
Year(FechaPrestacion)


/* "USA" el cursor, y coloca el puntero al tope (No en el primer registro sino en el "TOP" */
OPEN curRemitos

/* Lee siguiente registro (SKIP), asignando cada campo a variables previamente declaradas*/
FETCH NEXT FROM curRemitos INTO
@nidObraSocial,
@nAno,
@nMes,
@nTotalHonorarios,
@nTotalGastos

/* La funcion @@FETCH_SATUS es comparable a FIN DE ARCHIVO "EOF"
Para CLIPPEROS-FOXEROS como yo viene a ser "EOF()"
Proposito: Mientras recorro el Cursor, con los datos calculados del mismo voy
haciendo un Insert en otra tabla de la base de datos donde trabajo o
bien en otra, de acuerdo al prefijo que corresponda en "DBO"
*/
WHILE @@FETCH_STATUS = 0
BEGIN
print 'hola'+str(@nidObraSocial)
/*Hago el Insert del proposito declarado arriba en una tabla cualquiera
Leyendo los calculos que ya hizo el cursor*/
Insert into nexus7.dbo.Remitos (
idObraSocial,
ImporteHonorarios,
ImporteGastos,
PeriodoProceso
)
Values
(
@nIdObraSocial,
@nTotalHonorarios,
@nTotalGastos,
@nAno+@nMes
)
/* Tomo el id que me dio este insert, ya que ese ID lo debo grabar en la tabla hija
Entonces se muestra otro ejemplo con tablas Cabecera-Detalle o bien Padres-Hijas*/
set @nNuevoId = @@identity

/* Con dicho ID reemplazo en la tabla hija de */
update nexus7.dbo.PrestacionesGrabadas
set idRemito = @nNuevoID
where idObraSocial = @nNuevoId and
year(FechaPrestacion) = @nAno and
Month(FechaPrestacion) = @nMes

/* Leo proximo registro del cursor */
FETCH NEXT FROM curRemitos INTO
@nidObraSocial,
@nAno,
@nMes,
@nTotalHonorarios,
@nTotalGastos
End

/*Cierro y limpio cursor*/
CLOSE curRemitos
DEALLOCATE curRemitos

/* Consilido la Transaccion*/
commit transaction
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 21:21.