Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

como insertar solo lo que no existe

Estas en el tema de como insertar solo lo que no existe en el foro de Bases de Datos General en Foros del Web. Ayuda, tengo el siguiente problema (trabajo con PHP y ORACLE 9i) tengo el nombre de un cliente en la variable vNombre quiero comparar si este ...
  #1 (permalink)  
Antiguo 03/08/2004, 15:34
Avatar de padrino  
Fecha de Ingreso: mayo-2004
Ubicación: Aguascalientes, Ags. la tierra de la gente buena
Mensajes: 161
Antigüedad: 20 años
Puntos: 0
como insertar solo lo que no existe

Ayuda, tengo el siguiente problema (trabajo con PHP y ORACLE 9i)

tengo el nombre de un cliente en la variable vNombre
quiero comparar si este cliente existe, si no existe lo quiero agregar a mi tabla y si si existe mostrar un mensaje donde diga el cliente ya existe,

esto es lo que tengo pero creeo que estoy mal

Cita:
$csql = ociparse($conn,"SELECT id FROM clientes WHERE nombre = '$vNombre'");
ociexecute($csql);

if ($csql !='')
echo "Ya existe";
else
{
$csql = ociparse($conn,"INSERT INTO clientes(id,nombre,direccion,area,ubicacion,telefo no,email,status) VALUES (ID_CLIENTES_SQ.nextval,'$vNombre','$vDireccion',' $vArea','$vUbicacion','$vTelefono','$vEmail','Y')" );
ociexecute($csql);

}

bueno espero sea de utilidad o mejor orientenme porque ando perdido
__________________
The God Father
__________________________________________
No hay un error tan grande como el de no seguir adelante (:pensando:) William Blake
  #2 (permalink)  
Antiguo 04/08/2004, 08:52
Avatar de padrino  
Fecha de Ingreso: mayo-2004
Ubicación: Aguascalientes, Ags. la tierra de la gente buena
Mensajes: 161
Antigüedad: 20 años
Puntos: 0
Mmmmmmmmmmmm

nadien, mmmmmmmmm, de perdido escriban mensajes de animo,
__________________
The God Father
__________________________________________
No hay un error tan grande como el de no seguir adelante (:pensando:) William Blake
  #3 (permalink)  
Antiguo 04/08/2004, 09:52
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Vamos a ver, tienes varias posibilidades:
1. buscarlo antes y actuar en consecuencia a que lo encuentres o no
2. hacer el insert y capturar el código de error posterior si ya existe el individuo (presupongo que tiene un índice único o clave primaria por ahí).
3. usar el replace, que si el registro ya existe lo borra e inserta el nuevo (necesita de la existecia de la clave primaria o índice único).

Un saludo.
  #4 (permalink)  
Antiguo 04/08/2004, 10:12
Avatar de padrino  
Fecha de Ingreso: mayo-2004
Ubicación: Aguascalientes, Ags. la tierra de la gente buena
Mensajes: 161
Antigüedad: 20 años
Puntos: 0
Casi

bueno mira esa logica me queda muy clara, de hecho es lo que estado tratando de hacer si te fijas en el codigo que cito es la logica que trato de hacer pero no me funciona ya que el resultado de ese select no se por que pero siempre me regresa un valor aunque no existe incluso si mi tabla esta en blanco, por lo cual supongo que tengo un error o estoy manipulando mal mi vector de cual se construye de mi select

se supone que mi select no debe de regresar nada, si no lo encuentra pero si no lo encuentra entonces lo inserto de lo contrario solo lo omito, te pido de favor si sabes como manipular este problema me puedas orientar con unas lineas de codigo ya que estoy tratando pero no puedo

mira tambien lo que he pensado es que recorra toda la tabla de forma manual sin utilizar select con where pero lo que veo inconveniente es que alentaria demasiado el proceso y como que no me late, siento que la respuesta esta entre lo que propongo pero algo algo anda mal
__________________
The God Father
__________________________________________
No hay un error tan grande como el de no seguir adelante (:pensando:) William Blake
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 09:22.