Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/03/2011, 14:25
Avatar de Hamn
Hamn
 
Fecha de Ingreso: marzo-2008
Ubicación: Cali-Colombia
Mensajes: 212
Antigüedad: 16 años, 1 mes
Puntos: 1
Actualizar registro de una db usando switch y case

Amigos volviendo a un tema que no he podido solucionar, yo necesito actualizar los registros de mi base de datos

He configurado un sitio donde efectua pagos en linea
ese sitio me envia los datos de la transaccion en unas variables.

estas son las variables que recibo de la plataforma de pagos
Código PHP:
$fecha date("d.m.Y-H:i:s");
$refVenta $_REQUEST['ref_venta'];
$refPol $_REQUEST['ref_pol'];
$estadoPol $_REQUEST['estado_pol'];
$formaPago $_REQUEST['tipo_medio_pago'];
$banco $_REQUEST['medio_pago'];
$codigo $_REQUEST['codigo_respuesta_pol'];
$mensaje $_REQUEST['mensaje'];
$valor $_REQUEST['valor']; 
de los cuales solo me intereza $estadoPol

yo debo actuzalizar una tabla que la he llamado pedidos_confir

para esto hago un sql, previamnete ya me he conectado sin problemas

Código PHP:
$sql "REPLACE INTO pedidos_confir VALUES ('".$fecha."', '".$refVenta."',
'"
.$refPol."', '".$estadoPol."', '".$formaPago."', '".$banco."', '".$codigo."', '".$mensaje."',
'"
.$valor."')"
ya almacenada esta info, debo actualizar el estado de mi orden en otra tabla llamada order y el campo state.

para esto hice un switch($estadoPol) usando case, para manejar los 4 casos del estado del pedido.

yo comparo los valores y actuzlizo mi tabla de esta forma.
Código PHP:
switch($estadoPol)
{
case 
4$result_a mysql_query("UPDATE order SET state ='pay' WHERE id=".$refVenta ,$conexion);
break;
case 
5$result_c mysql_query("UPDATE order SET state ='unpay' WHERE id=".$refVenta ,$conexion);
break;
case 
6$result_r mysql_query("UPDATE order SET state ='rejected' WHERE id=".$refVenta ,$conexion);
break;
case 
12:$result_p mysql_query("UPDATE order SET state ='pending' WHERE id=".$refVenta ,$conexion);
break;

si alguien me pueda dar ideas de ver que tengo mal...


Aca tengo el archivo completo

Si es necesario verlo.
Código PHP:
<?php
$llave
="xxxxxxxxx";
$usuarioId $_REQUEST['xxxxx'];
$fecha date("d.m.Y-H:i:s");
$refVenta $_REQUEST['ref_venta'];
$refPol $_REQUEST['ref_pol'];
$estadoPol $_REQUEST['estado_pol'];
$formaPago $_REQUEST['tipo_medio_pago'];
$banco $_REQUEST['medio_pago'];
$codigo $_REQUEST['codigo_respuesta_pol'];
$mensaje $_REQUEST['mensaje'];
$valor $_REQUEST['valor'];
//Escriba su Host, por lo general es 'localhost'
$host 'localhost';
//Escriba el nombre de usuario de la base de datos
$login 'db_login';
//Escriba la contraseña del usuario de la base de datos
$password 'xxxxxx';
//Escriba el nombre de la base de datos a utilizar
$basedatos 'db_name';
//conexion a mysql
$conexion mysql_connect($host$login$password);
if(!
$conexion){
$mensajeLog .= "[".date("Y-m-d H:i:s")."] Error al conectar la base de datos -
"
.mysql_error()."\n";
}
if(!
mysql_select_db($basedatos$conexion)){
$mensajeLog .= "[".date("Y-m-d H:i:s")."] Error al seleccionar la base de datos -
"
.mysql_error()."\n";
}
// consulta a la bd remplazo el estado actual de la tabla pedidos_confir en el campo estado_pol
$sql "REPLACE INTO pedidos_confir VALUES ('".$fecha."', '".$refVenta."',
'"
.$refPol."', '".$estadoPol."', '".$formaPago."', '".$banco."', '".$codigo."', '".$mensaje."',
'"
.$valor."')";
// select para actualizar la bd "pedidos_confir" y "order 'unpay','pay'.'rejected','pending'"
switch($estadoPol)
{
case 
4$result_a mysql_query("UPDATE order SET state ='pay' WHERE id=".$refVenta ,$conexion);
break;
case 
5$result_c mysql_query("UPDATE order SET state ='unpay' WHERE id=".$refVenta ,$conexion);
break;
case 
6$result_r mysql_query("UPDATE order SET state ='rejected' WHERE id=".$refVenta ,$conexion);
break;
case 
12:$result_p mysql_query("UPDATE order SET state ='pending' WHERE id=".$refVenta ,$conexion);
break;
}
$result mysql_query($sql);
if (!
$result) {
$mensajeLog .= "[".date("Y-m-d H:i:s")."] Error al ejecutar el query (".$sql.") la
base de datos - "
.mysql_error()."\n";
}
if(
strlen($mensajeLog)>0){
$filename $_SERVER["DOCUMENT_ROOT"]."/confirmacion.txt";
$fp fopen($filename"a");
if(
$fp) { fwrite($fp$mensajeLogstrlen($mensajeLog));
fclose($fp);
}
}
?>
__________________
De que vale la vida si cuando la tenemos parece estar muerta.

http://www.somoscali.com/