Foros del Web » Programando para Internet » PHP »

Actualizar los registros en mi db

Estas en el tema de Actualizar los registros en mi db en el foro de PHP en Foros del Web. Hola amigos tengo un script que he configurado para recibir pagos en linea, dicho script cuando se efectua la compra me retorna dos url una ...
  #1 (permalink)  
Antiguo 16/03/2011, 15:49
Avatar de Hamn  
Fecha de Ingreso: marzo-2008
Ubicación: Cali-Colombia
Mensajes: 212
Antigüedad: 16 años, 1 mes
Puntos: 1
Actualizar los registros en mi db

Hola amigos tengo un script que he configurado para recibir pagos en linea, dicho script cuando se efectua la compra me retorna dos url una donde confirma el estado de la compra y otra donde da respuesta al usaurio comprador.

Hasta ahi todo bien,

sucede que debo actualizar los registros en la db para que tome la info que Pagos Online me envia luego de la compra. tengo dos tablas en mi base de datos una que se llama
pedidos_confir es esta la estructura
Código:
CREATE TABLE IF NOT EXISTS `pedidos_confir` (
  `name` varchar(100) NOT NULL,
  `fecha` varchar(32) NOT NULL default '',
  `refventa` varchar(32) NOT NULL default '',
  `refpol` varchar(32) NOT NULL default '',
  `estado_pol` varchar(32) NOT NULL default '',
  `formapago` varchar(32) NOT NULL default '',
  `banco` varchar(32) NOT NULL default '',
  `codigo_respuesta_pol` varchar(32) NOT NULL default '',
  `mensaje` varchar(50) NOT NULL default '',
  `valor` varchar(20) NOT NULL default '',
  `email` varchar(100) NOT NULL,
  UNIQUE KEY `refventa` (`refventa`),
  FULLTEXT KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

donde en el" estado_pol" debo agregar la info que recibo de pagos online, segun el caso ellos me dan 4 estados
si el caso es 4 el estado es A=aceptado
caso 5 el estado es C=Cancelado
caso 6 el estado es R=rechazado
caso 12 el estado es P=pendiente.

debo tomar esos datos y convertirlos par actualizar mi tabla dentro del script la cual su estructura es.
Código:
CREATE TABLE IF NOT EXISTS `order` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `pay_id` varchar(32) default NULL,
  `service` varchar(16) NOT NULL default 'paypal',
  `user_id` int(10) unsigned NOT NULL default '0',
  `admin_id` int(10) unsigned NOT NULL default '0',
  `team_id` int(10) unsigned NOT NULL default '0',
  `city_id` int(10) unsigned NOT NULL default '0',
  `card_id` varchar(16) default NULL,
  `state` enum('unpay','pay','rejected','pending') NOT NULL default 'unpay',
  `quantity` int(10) unsigned NOT NULL default '1',
  `realname` varchar(32) default NULL,
  `mobile` varchar(128) default NULL,
  `zipcode` char(6) default NULL,
  `address` varchar(128) default NULL,
  `express` enum('Y','N') NOT NULL default 'Y',
  `express_xx` varchar(128) default NULL,
  `express_id` int(10) unsigned NOT NULL default '0',
  `express_no` varchar(32) default NULL,
  `price` double NOT NULL,
  `money` double NOT NULL,
  `origin` double NOT NULL,
  `credit` double NOT NULL,
  `card` double NOT NULL,
  `fare` double NOT NULL,
  `condbuy` varchar(128) default NULL,
  `remark` text,
  `create_time` int(10) unsigned NOT NULL default '0',
  `pay_time` int(10) unsigned NOT NULL default '0',
  `sms_express` enum('Y','N') NOT NULL default 'N',
  `comment_content` text,
  `comment_display` enum('Y','N') NOT NULL default 'Y',
  `comment_grade` enum('good','none','bad') NOT NULL default 'good',
  `comment_time` int(11) default NULL,
  `partner_id` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `UNQ_p` (`pay_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=41 ;
en este caso debo actualizar el "state"

tomando los valores de pedidos_confir debo actualizar mi estado de la orden con esto evito que al usuario le salga su pedido como no cancelado.

Este es el archivo que recibe la info sumistrada por la plataforma de pagos, y me permite tomar las variables con los resultados de la orden y actualizar mi db. me pueden ayudar a revisarla y ver que le falta,
si ven el archivo confirmacion.php testa creando un registro donde el ulimo log es este error

[2011-03-16 17:16:12] Error al ejecutar el query (REPLACE INTO pedidos_confir VALUES ('16.03.2011-17:16:12', '1300310134',
'67212035', '5', '', '', '2', '',
'29500.00')) la
base de datos - Column count doesn't match value count at row 1

Código PHP:
<?php
$llave
="llave_pol";
$usuarioId $_REQUEST['id_pol'];
$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 'usuario_db';
//Escriba la contraseña del usuario de la base de datos
$password 'contraseña_db';
//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
$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/

Última edición por Hamn; 16/03/2011 a las 15:54
  #2 (permalink)  
Antiguo 16/03/2011, 15:59
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Actualizar los registros en mi db

divide y vencerás, por ejemplo... haz un insert o update desde phpmyadmin, copiate la consulta sql generada, y adaptala a tu php. O si no, hazlo paso por paso, no creo que nadie se mire todo lo que has puesto... es demasiado... tienes que trabajar más tu, para que te podamos ayudar, intenta sacar recursos como los que te he dicho, siempre puedes avanzar.


Un saludo!
  #3 (permalink)  
Antiguo 18/03/2011, 09:13
Avatar de Hamn  
Fecha de Ingreso: marzo-2008
Ubicación: Cali-Colombia
Mensajes: 212
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Actualizar los registros en mi db

Amigos, de nuevo hay alguien quien pueda ayudarme se que se ve largo el post, pero, solo hay dos tablas que necesito modificar

que son de pedidos_confir /estado pol

y hacer una relacion entre esa y la tabla order / valor state.


debo actualizar los dos valores simultaneamente.
__________________
De que vale la vida si cuando la tenemos parece estar muerta.

http://www.somoscali.com/
  #4 (permalink)  
Antiguo 18/03/2011, 09:53
Avatar de carmagedon  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 794
Antigüedad: 18 años, 10 meses
Puntos: 23
Respuesta: Actualizar los registros en mi db

Hola,

Si, sinceramente es muy largo como para andar mirando. Lo ideal sería que optimizaras tu consulta brindando datos precisos.

Por lo que pude llegar a entender, para relacionar las tablas que están en una base de datos, podés utilizar INNER JOIN y obtener solamente los campos con los que querés trabajar.

Investiga acerca INNER JOIN, quizás te resulte práctico.

Saludos!
__________________
Freelance - Aplicaciones Web
  #5 (permalink)  
Antiguo 18/03/2011, 11:27
Avatar de Hamn  
Fecha de Ingreso: marzo-2008
Ubicación: Cali-Colombia
Mensajes: 212
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Actualizar los registros en mi db

Cita:
Iniciado por carmagedon Ver Mensaje
Hola,

Si, sinceramente es muy largo como para andar mirando. Lo ideal sería que optimizaras tu consulta brindando datos precisos.

Por lo que pude llegar a entender, para relacionar las tablas que están en una base de datos, podés utilizar INNER JOIN y obtener solamente los campos con los que querés trabajar.

Investiga acerca INNER JOIN, quizás te resulte práctico.

Saludos!
entiendo que el INNER JOIN me permite emparejar filas de diversas tablas, se que es mas sencillo que eso, solo que ando un poco bloqueado por cuestiones de salud.

Mira cuando el cliente efectua una compra a tratraves de mi sitio web, el sistema de pagos me retorna dos variables en la cual el archivo php de confirmacion que ven arriba contiene las variables que en envia, debo procesarlas para ingresarlas en la tabla "pedidos_confir" al campo estado_pol, luego tomo la info de esa tabla order campo state
__________________
De que vale la vida si cuando la tenemos parece estar muerta.

http://www.somoscali.com/

Etiquetas: registros
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 23:09.