Foros del Web » Programando para Internet » PHP »

duda

Estas en el tema de duda en el foro de PHP en Foros del Web. mi problema es este..... noc como preguntar si algún campo no existe en una tabla que lo inserte y si existe lo updatee y que ...
  #1 (permalink)  
Antiguo 02/11/2010, 07:22
Avatar de xamilo  
Fecha de Ingreso: febrero-2010
Mensajes: 120
Antigüedad: 14 años, 2 meses
Puntos: 1
duda

mi problema es este..... noc como preguntar si algún campo no existe en una tabla que lo inserte y si existe lo updatee

y que esta pregunta la aga en dentro de un for o while para que pregunta 1 por 1 en los campos que muestro

lo que tengo yo es que al intentar acer un insert a una tabla que ya existe por ende se kae....

aka algo de lo que tengo....
Código PHP:
Ver original
  1. function revisa_acceso($perfil, $idsubmenu)
  2. {  
  3.     $sqlacc = "select  * from web.acceso acc
  4.             where acc.perfil_id = $perfil
  5.             and acc.submenu_id = $idsubmenu";
  6.     return  new DB_server($sqlacc);
  7. }
  8.  
  9. $vacio = revisa_acceso($perfil, $idsubmenu);
  10.         if ($vacio->next_record() == "0")
  11.         {
  12.             if ($vacio->num_rows() == "0")
  13.             {
  14.                 for($i=0;$i < count($aracc2);$i++)
  15.                 {
  16.                    
  17.                 $sqlins="insert into web.acceso(perfil_id, modulo_id, menu_id, submenu_id, activo, permiso)
  18.                          values('$perfil', '$mod', '$idmenu', '$idsubmenu', '0', '1')";
  19.                 $regins = new DB_server($sqlins);
  20.                 echo $sqlins);
  21.                                
  22.                 }
  23.             }
  24.         }


alguna ayuda?
__________________
- Ingeniero en Informática -
  #2 (permalink)  
Antiguo 02/11/2010, 07:45
Avatar de xamilo  
Fecha de Ingreso: febrero-2010
Mensajes: 120
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: duda

aver si se entiende +

tengo 1 insert k me muestra datos desde un selectbox
selecciono y me muestra
segun perfil y modulo
cada dato k muestra tiene un checkbox
cuando selecciono uno k se k es nuevo para acerle el insert( este dato esta al final de todo)
me bota xk intenta insertar el primer dato de la tabla k ya existe
__________________
- Ingeniero en Informática -
  #3 (permalink)  
Antiguo 02/11/2010, 09:20
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: duda

hace un select de tu clave primaria que quieres insertar y pregunta por el resultado con mysql_query_num_rows() si el resultado te da mayor a cero haces update sino haces un insert.
  #4 (permalink)  
Antiguo 02/11/2010, 09:37
Avatar de xamilo  
Fecha de Ingreso: febrero-2010
Mensajes: 120
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: duda

eso ago.... pero al acer el insert intenta insertar un dato que ya existe y no el nuevo dato
entoces, se cae

Warning: pg_exec() [function.pg-exec]:llave duplicada.... aki intenta insertar un datos que ya estan insertos....
__________________
- Ingeniero en Informática -
  #5 (permalink)  
Antiguo 02/11/2010, 10:05
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: duda

Puedes usar ON DUPLICATE KEY UPDATE
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp

Etiquetas: Ninguno
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 04:21.