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

Insertar registro con una condicion con php/mysql

Estas en el tema de Insertar registro con una condicion con php/mysql en el foro de Bases de Datos General en Foros del Web. Hola, tengo una tabla con productos, cada producto tiene una id. Lo que quiera hacer es una condicion que si la id=8 no existe insertar ...
  #1 (permalink)  
Antiguo 29/12/2002, 05:07
 
Fecha de Ingreso: enero-2002
Mensajes: 90
Antigüedad: 22 años, 4 meses
Puntos: 0
Insertar registro con una condicion con php/mysql

Hola, tengo una tabla con productos, cada producto tiene una id. Lo que quiera hacer es una condicion que si la id=8 no existe insertar un nuevo registro con id=8 y si esiste modificar el producto que tiene id=8.
como podria hacer esto?

Estoy usando php y mysql

gracias y saludos
  #2 (permalink)  
Antiguo 30/12/2002, 07:42
Avatar de SpiceMan  
Fecha de Ingreso: noviembre-2002
Mensajes: 160
Antigüedad: 21 años, 5 meses
Puntos: 0
Doy por contado que es de tu conocimiento que un campo de ID es recomendable tenerlo como autoincrementable, y no asignar id "a mano" dentro del código sino que la BD se encarga de asignar uno al hacer un registro nuevo.

Basándome en tu descripción, lo que quieres sería hacer un INSERT y si existe el ID que guarde los datos encima de los viejos.

bueno, se hace usando REPLACE.

Código PHP:
$r = ("INSERT INTO tabla col1, col2 VALUES (valor1, valor2)"$db);
if (
mysql_error()) { die ("Error: ".mysql_error()); }
$r = ("REPLACE INTO tabla id, col1, col2 VALUES (".mysql_insert_id().", nuevovalorcol2, nuevovalorcol3");
if (
mysql_error()) { die ("Error: ".mysql_error()); } 
Técnicamente lo que hace el REPLACE es hacer un DELETE y despues un INSERT, por lo que usar REPLACE en lugar de UPDATE no tiene mucho sentido (ademas que sobrecarga mas el sistema de BDs).

Espero haber despejado tu duda
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 19:13.