Foros del Web » Programando para Internet » PHP »

Si Existe Actualizar Y Si No Crear

Estas en el tema de Si Existe Actualizar Y Si No Crear en el foro de PHP en Foros del Web. Hola a todos: Hoy amaneci con otro acertijo para resolver. El punto es que necesito que al grabar unos datos en la tabla, primero verifique ...
  #1 (permalink)  
Antiguo 11/04/2007, 07:39
 
Fecha de Ingreso: septiembre-2006
Mensajes: 48
Antigüedad: 17 años, 7 meses
Puntos: 0
Pregunta Si Existe Actualizar Y Si No Crear

Hola a todos:

Hoy amaneci con otro acertijo para resolver. El punto es que necesito que al grabar unos datos en la tabla, primero verifique si existe el codigo del usuario y si existe actualice y si no existe que cree los datos (cod_usuario, total_a_pagar). Utilicé el siguiente código pero solo hace la actualización. Sin embargo, si el usuario no existe no hace nada. Este es el código:

$consulta = mysql_query("SELECT cod_usuario, total_a_pagar FROM $sql_tabla WHERE cod_usuario ='$cod_usuario'");
if (isset($cod_usuario)) {
mysql_query("update $sql_tabla set total_a_pagar=$total_a_pagar WHERE cod_usuario='$cod_usuario' ");
} else {
mysql_query("INSERT INTO $sql_tabla (cod_usuario, total_a_pagar) " .
"VALUES ('$cod_usuario', '$total_a_pagar')") or die(mysql_error());
}

Por favor me podrían indicar que estoy haciendo mal...

Gracias por su ayuda
  #2 (permalink)  
Antiguo 11/04/2007, 07:42
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: Si Existe Actualizar Y Si No Crear

Modifica el if


Código PHP:
if ($consulta != null)
{
  
//Update
}
else
{
  
//Insert

Saludillos.
  #3 (permalink)  
Antiguo 11/04/2007, 07:48
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Si Existe Actualizar Y Si No Crear

Hola, tambien puedes hacerlo asi:
Código PHP:
$consulta mysql_query("SELECT cod_usuario, total_a_pagar FROM $sql_tabla WHERE cod_usuario ='$cod_usuario'"); 
if (
mysql_affected_rows()!=0) {
mysql_query("update $sql_tabla set total_a_pagar=$total_a_pagar WHERE cod_usuario='$cod_usuario' "); 
} else {
mysql_query("INSERT INTO $sql_tabla (cod_usuario, total_a_pagar) " .
"VALUES ('$cod_usuario', '$total_a_pagar')") or die(mysql_error());

__________________
->Aprender es un proceso que incluye el error..
  #4 (permalink)  
Antiguo 11/04/2007, 07:55
 
Fecha de Ingreso: septiembre-2006
Mensajes: 48
Antigüedad: 17 años, 7 meses
Puntos: 0
Pregunta Re: Si Existe Actualizar Y Si No Crear

mauled muchas gracias por tu ayuda, pero persiste el mismo problema, solo actualiza y no crea el nuevo.

Por qué será?
  #5 (permalink)  
Antiguo 11/04/2007, 08:04
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Re: Si Existe Actualizar Y Si No Crear

Por que tienes que hacer que recorra toda la consulta por que como lo tienes solo va hacer una sola accion podrias hacerlo de la siguiente forma:

Cita:
$consulta = mysql_query("SELECT cod_usuario, total_a_pagar FROM $sql_tabla WHERE cod_usuario ='$cod_usuario'");
while($arreglo_consulta=mysql_fetch_array($consult a){
if ($consulta != null)
{
//Update
}
else
{
//Insert
}
}

Bueno no estoy seguro que asi funcione pero esa es la idea

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #6 (permalink)  
Antiguo 11/04/2007, 08:06
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Si Existe Actualizar Y Si No Crear

Hola, te falta un punto y coma en el insert, ponelo asi:
Código PHP:
mysql_query("INSERT INTO $sql_tabla (cod_usuario, total_a_pagar) " .
"VALUES ('$cod_usuario', '$total_a_pagar');") or die(mysql_error()); 
Saludos
__________________
->Aprender es un proceso que incluye el error..
  #7 (permalink)  
Antiguo 11/04/2007, 08:27
 
Fecha de Ingreso: septiembre-2006
Mensajes: 48
Antigüedad: 17 años, 7 meses
Puntos: 0
Pregunta Re: Si Existe Actualizar Y Si No Crear

Ay amigos gracias por las informaciones pero sigo sin poder resolverlo!!!

no se que pasa
  #8 (permalink)  
Antiguo 11/04/2007, 08:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Si Existe Actualizar Y Si No Crear

Código PHP:
$consulta mysql_query("SELECT cod_usuario, total_a_pagar FROM $sql_tabla WHERE cod_usuario ='$cod_usuario'");
if (
mysql_num_rows($consulta)>0) {
mysql_query("update $sql_tabla set total_a_pagar=$total_a_pagar WHERE cod_usuario='$cod_usuario' ");
} else {
mysql_query("INSERT INTO $sql_tabla (cod_usuario, total_a_pagar) " .
"VALUES ('$cod_usuario', '$total_a_pagar')") or die(mysql_error());

  #9 (permalink)  
Antiguo 11/04/2007, 08:52
 
Fecha de Ingreso: septiembre-2006
Mensajes: 48
Antigüedad: 17 años, 7 meses
Puntos: 0
De acuerdo Re: Si Existe Actualizar Y Si No Crear

Guauuuuuu Gracias GatorV por fin funcionó.

Y gracias nuevamente a cala932, Nano_ y mauled.
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 20:39.