Foros del Web » Programando para Internet » PHP »

ayuda insert

Estas en el tema de ayuda insert en el foro de PHP en Foros del Web. BUenas compañeros!!!! a ver si me pueden dar una mano, tengo un form, donde cargo los datos de clientes y las instalaciones, lo que yo ...
  #1 (permalink)  
Antiguo 15/02/2010, 09:29
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
ayuda insert

BUenas compañeros!!!!

a ver si me pueden dar una mano, tengo un form, donde cargo los datos de clientes y las instalaciones, lo que yo necesito es hacer que se carguen las 2 o no se cargue ninguna.
Por que el problema que estoy teniendo es que se me carga una sola tabla, y la otra no, se entiende???
desde ya muchas gracias...
  #2 (permalink)  
Antiguo 15/02/2010, 09:40
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: ayuda insert

si lo tienes solo en un insert lo que tienes que hacer es ver porque se carga uno y no los dos. en vez de decir que se cargen los dos o ninguno.
saludos
  #3 (permalink)  
Antiguo 15/02/2010, 09:45
Avatar de Gulinaidas  
Fecha de Ingreso: febrero-2010
Ubicación: La Plata, ARG
Mensajes: 88
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: ayuda insert

Mostra esa parte de codigo para verlo y asi t vamos a poder orientar mejor...saludos
  #4 (permalink)  
Antiguo 15/02/2010, 09:54
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: ayuda insert

en realidad son 3 tablas diferentes con tres insert diferentes

Código PHP:
            $query =  "INSERT INTO clientes (idclientes, nombre, apellido, domicilio, tel_fijo, celular, email, dni, profesion, localidad, tipo, contacto, observacion, cuit, fecha_nac, idnum_tarjeta, eliminado, cod_pos, barrio, dpto, entre)  VALUES ((select nextval('seq_cliente')) ,'$nom','$ape','$dom','$tel','$cel', '$email', '$dni', '$prof', '$loc', '$tipo', '$cont', '$obs', '$cuit', '$fecha_nac', '$num_tarj', 'false', '$cp', '$barrio', '$dpto','$entre')";
            
$result pg_query($query);
    
        
$sql "select * from clientes order by idclientes DESC limit 1 "
        
$Conn ConectarBD();
        
$result EjecutarBD($Conn$sql); 
        
        
$query pg_query($sql);
        
$resultado pg_fetch_assoc($query);
        
$idclie $resultado['idclientes'];

    
$query1 "INSERT INTO instalaciones( idinstalaciones, idclientes, fecha_inst, equipo, mac_equipo, señal, ip_pc, ip_equipo, sistem_operat, observaciones, velocidad, abono, fecha_venc, n_comodato, instaladores, eliminado, habilitado, repetidora, cost_inst) values ((select nextval('seq_instalaciones')), '$idclie','$fec_ins', '$equi', '$mac', '$señ','$ip_pc', '$ip_ant', '$so', '$obs_inst','$vel', '$abo', '$f_ven', '$como','$instala', 'false', 'true', '$repetidora', '$cost_inst' )";

$result1 pg_query($query1);

$sql_primer "select * from clientes where idclientes = '$idclie'";
    
$Conn ConectarBD();
    
$resul_sql_primer EjecutarBD($Conn$sql_primer); 
    
$fdev_primer pg_num_rows($resul_sql_primer);

        if (
$fdev_primer >= "1")
            { 
                
$diasrestaFechas($fecha_inst$fecha_venc);
                
//$dias = $dias - 10;
                
$abo_primer round(($dias $abo)/30);
                
                
$query2 =" INSERT INTO pagos ( idpago, fecha_ing, importe_deuda, idnum_tarjeta, idclientes, detalle) VALUES ((select nextval('seq_pagos')), '$f_ven', '$abo_primer', '$num_tarj', '$idclie', 'Abono Proporcional')";
$result2 pg_query($query2); 
lo que yo quiero es que me cargue en las 3 tablas o ninguna
muchas gracias
  #5 (permalink)  
Antiguo 15/02/2010, 13:32
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: ayuda insert

Hola,

Tienes que usar transacciones u operaciones atómicas, usando las instrucciones de MySQL: set autocommit, begin transaction, commit y rollback. Para poder usarlas existen diferentes métodos, pero dependen del engine (InnoDB, DBD tables), y de otros factores.

Lee la documentación de la versión de MySQL que estas usando.

Saludos,
  #6 (permalink)  
Antiguo 15/02/2010, 13:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: ayuda insert

estoy usando postgres, y hace bastante estoy tratando de usar eso, pero no se bien , y no encuentro informacion que yo entendiese, o sea, sale informacion, pero no la entiendo bien , como poder utilizarla, si me podrias ayudar o dar un ejemplo chico para ver como es. desde ya muchas gracias
tengo este ejemplo que me ayudaron un vez, pero... mucho no lo pude aplicar
Código PHP:

CREATE 
OR REPLACE FUNCTION sumar_dias_a_fecha(date,integer)  RETURNS date AS$BODY$DECLARE fecha_final date;contador integer;BEGINfecha_final=$1;FOR contador IN 1..$2loop fecha_final fecha_final 1;end loop;RETURN fecha_final;end;$BODY$  LANGUAGE 'plpgsql' VOLATILE
pero no entiendo mucho
  #7 (permalink)  
Antiguo 15/02/2010, 14:24
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: ayuda insert

Hola,

Cita:
Iniciado por sergiop21 Ver Mensaje
estoy usando postgres, ...
Ooops! ... no tengo ni idea de Postgre. No sé por qué pensé que estabas usando MySQL :.

Ahora bien, viene siendo parecido en casi todos los RDBMS, con algunas diferencias dependiendo de la base de datos y otros detalles internos de la misma (como el caso de MySQL y los engines).

Básicamente ...

Código:
BEGIN TRANSACTION // <- Inicia una transacción.
INSERT ...
UPDAT ...
DELETE ...
if ($TODO = 'OK')
  COMMIT // <- Hace las operaciones anteriores
else
  ROLLBACK // <- Descarta las operaciones
Todo lo tienes que hacer en la misma conexión. Ahora bien ... ¿Qué va a hacer Postgre si cualquier operación falla sin llegar al 'if'? ... ¿Va a hacer un commit o un rollback? ... Depende de Postgre o la configuración del BEGIN TRANSACTION.

Ahora bien ... eso funciona solamente si tu aplicación está bien diseñada. Si tu aplicación no ingresa datos porque 'no quiso', entonces a la base de datos le dá igual.

Por ejemplo:

Si el código no pasa por este if:
Código:
if ($fdev_primer >= "1")
entonces el 3 INSERT no se va a ejecutar, y tu programa posiblemente tiene un problema de lógica.

Busca mayor información de la versión de Postgre que estas usando, allí está mucho mejor explicado y detallado.


Cita:
Iniciado por sergiop21 Ver Mensaje
CREATE OR REPLACE FUNCTION ...
Es es una función de Postgre, posiblemente alguien con mayor conocimiento en las instrucciones específicas de Postgre te sea de mayor ayuda.

Saludos,

Última edición por HackmanC; 15/02/2010 a las 14:41 Razón: arreglos
  #8 (permalink)  
Antiguo 15/02/2010, 15:50
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: ayuda insert

muchas gracias por la ayuda, mira postgres y mysql la mayoria de las funciones son similares.

entonces haber si entendi bien
primero hago el begin, entoces tengo que buscar como se inicia el begin con postgres.

segundo hago los comandos

tercero pregunto si todo fue un exito que lo de de alta o sea coloco el commit que tambien tengo que averiguar como se coloca en postgres

y si no fue un exito, que deshaga todo. ta bien.

si es asi muchas gracias por todo y si no lo mismo muchas gracias por la ayuda amigo
  #9 (permalink)  
Antiguo 15/02/2010, 15:52
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: ayuda insert

Cita:
Iniciado por sergiop21 Ver Mensaje
muchas gracias por la ayuda, mira postgres y mysql la mayoria de las funciones son similares.

entonces haber si entendi bien
primero hago el begin, entoces tengo que buscar como se inicia el begin con postgres.

segundo hago los comandos

tercero pregunto si todo fue un exito que lo de de alta o sea coloco el commit que tambien tengo que averiguar como se coloca en postgres

y si no fue un exito, que deshaga todo. ta bien.

si es asi muchas gracias por todo y si no lo mismo muchas gracias por la ayuda amigo
Asi es captaste bien la idea, tampoco tengo mucha idea de postgre asi que no puedo ayudarte con eso, solo queria confirmar que captaste bien :)
  #10 (permalink)  
Antiguo 15/02/2010, 16:01
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: ayuda insert

muchas gracias, ahora estoy viendo como hacerlo
jajajjaja,

Etiquetas: insert
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 12:58.