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

ayuda urgente con transaccion

Estas en el tema de ayuda urgente con transaccion en el foro de Mysql en Foros del Web. Pues tengo una duda con una transaccion y queria que me dijeseis que veis mal o si me falta algo.Este es el ejercicio: megaupload.com/es/?d=J82U7GD5 y ...
  #1 (permalink)  
Antiguo 13/06/2007, 11:33
 
Fecha de Ingreso: febrero-2007
Mensajes: 15
Antigüedad: 17 años, 2 meses
Puntos: 0
ayuda urgente con transaccion

Pues tengo una duda con una transaccion y queria que me dijeseis que veis mal o si me falta algo.Este es el ejercicio:
megaupload.com/es/?d=J82U7GD5
y así es como lo he hecho yo:
mysql_query("START TRANSACTION")
$exito=mysql_query("Insert into cliente(cod,cod,saldo)
"values(".$codclienteorigen.",".$codclientedestino .",".$contpuntos)");
if($exito){
mysql_query("commit");
echo("Traspaso realizado con exito");
}
else{
mysql_query("Rollback");
echo("Se produjo un error");
}
  #2 (permalink)  
Antiguo 13/06/2007, 12:30
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Re: ayuda urgente con transaccion

Le faltan ; ¿que error te da?

Código PHP:
   mysql_query("START TRANSACTION");
   
$exito=mysql_query("Insert into cliente(cod,cod,saldo) values ($codclienteorigen,$codclientedestino,$contpuntos)");

   if(
$exito){
       
mysql_query("COMMIT");
       echo(
"Traspaso realizado con exito");
   }
   else{ 
       
mysql_query("ROLLBACK");
       echo(
"Se produjo un error");
   } 
Otra opción es:
Código PHP:
   mysql_query("START TRANSACTION");
   
$exito=mysql_query("Insert into cliente(cod,cod,saldo) values ($codclienteorigen,$codclientedestino,$contpuntos)");

   if(!
mysql_error()){
       
mysql_query("COMMIT");
       echo(
"Traspaso realizado con exito");
   }
   else{ 
       
mysql_query("ROLLBACK");
       echo(
"Se produjo un error");
   } 
  #3 (permalink)  
Antiguo 13/06/2007, 12:39
 
Fecha de Ingreso: febrero-2007
Mensajes: 15
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: ayuda urgente con transaccion

¿¿claudiovega pero has visto el ejercicio que he puesto en megaupload??Lo digo porque me faltaría lo de la parte de que me dijera "el saldo es insuficiente".No obstante muchas gracias
  #4 (permalink)  
Antiguo 13/06/2007, 12:55
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Re: ayuda urgente con transaccion

El servidor envía un mensaje de que en 5 horas mas podré verlo.
  #5 (permalink)  
Antiguo 13/06/2007, 15:01
 
Fecha de Ingreso: junio-2007
Mensajes: 56
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: ayuda urgente con transaccion

Una duda.
Si tengo la siguiente transacción:
switch ($action) {

case 'deletePedido' :
deletePedido();
break;

case 'modifyAvaluo' :
modifyAvaluo();
break;

case 'VerGant' :
verGant();
break;

default :
header('Location: index.php');
}
function deletePedido()
{
if (isset($_GET['pedidoIdG']) && (int)$_GET['pedidoIdG'] > 0) {
$pedidoIdG = (int)$_GET['pedidoIdG'];
} else {
header('Location: index.php');
}

$sql = "DELETE FROM tbl_pedido
WHERE pe_idG = $pedidoIdG";
dbQuery($sql);

header('Location: index.php');
}
¿dónde pongo el commit y el rollback?
  #6 (permalink)  
Antiguo 13/06/2007, 15:12
 
Fecha de Ingreso: junio-2007
Mensajes: 56
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: ayuda urgente con transaccion

bueno lo puse así:
function deletePedido()
{
if (isset($_GET['pedidoIdG']) && (int)$_GET['pedidoIdG'] > 0) {
$pedidoIdG = (int)$_GET['pedidoIdG'];
} else {
header('Location: index.php');
}

$sql = "DELETE FROM tbl_pedido
WHERE pe_idG = $pedidoIdG";
dbQuery($sql);

mysql_query("START TRANSACTION");
$exito=mysql_query("DELETE FROM tbl_pedido WHERE pe_idG = $pedidoIdG");

if(!mysql_error()){
mysql_query("COMMIT");
//echo("Traspaso realizado con exito");
}
else{
mysql_query("ROLLBACK");
echo("Se produjo un error");
}

header('Location: index.php');
}
Comenté la linea de traspaso realizado, porque había problemas a la hora de enviar el header, entre el echo("Traspaso realizado con exito"); y header('Location: index.php');
¿Estará funcionando?
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 17:59.