Foros del Web » Programando para Internet » PHP »

Problema al guardar pedido en base datos

Estas en el tema de Problema al guardar pedido en base datos en el foro de PHP en Foros del Web. Buenas, tengo el siguiente problema.Estoy haciendo una web donde se pueda comprar online. Pues bien, eliges el producto,lo agregas al carro y te vas al ...
  #1 (permalink)  
Antiguo 07/02/2006, 05:00
 
Fecha de Ingreso: septiembre-2005
Mensajes: 374
Antigüedad: 12 años, 3 meses
Puntos: 0
Problema al guardar pedido en base datos

Buenas, tengo el siguiente problema.Estoy haciendo una web donde se pueda comprar online. Pues bien, eliges el producto,lo agregas al carro y te vas al tipico formulario de envio de pedido. Es aquí donde me da el problema, es decir, cuando yo introduzco los datos del envio del pedido al darle a procesar me deberia salir la pagina de forma de pago. Pues no me sale la forma de pago, sino que sale este error:

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in c:\archivos de programa\easyphp1-8\www\a\order_fns.php on line 38

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in c:\archivos de programa\easyphp1-8\www\a\order_fns.php on line 55
No se pueden almacenar los datos, por favor prueba otra vez.

Es como si esa funciona no dejara utilizarla por Mysql. Me aconsejaron poner mysql_query en vez de mysql_numrows, pero si hago eso no se almacenan los datos del pedido en la base de datos. Alguna idea para resolver esto? Muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 07/02/2006, 05:13
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 9 meses
Puntos: 771
Hola sneider

Debe haber algún error en tu código SQL. Ponlo aquí para que lo veamos o utiliza mysql_error para saber que está mal:
Código:
$sql = "SELECT * FROM tutabla";
$resul = mysql_query($sql) or die ('Error: '.mysql_error())
Saludos,
  #3 (permalink)  
Antiguo 07/02/2006, 05:16
 
Fecha de Ingreso: septiembre-2005
Mensajes: 374
Antigüedad: 12 años, 3 meses
Puntos: 0
Gracias figura por contestar.
El codigo es el siguiente:

<?php
function process_card($card_details)
{
// connect to payment gateway or
// use gpg to encrypt and mail or
// store in DB if you really want to

return true;
}

function insert_order($order_details)
{
global $HTTP_SESSION_VARS;

//extract order_details out as variables
extract($order_details);


//set shipping address same as address
if(!$ship_name&&!$ship_address&&!$ship_city&&!$shi p_state&&!$ship_zip&&!$ship_country)
{
$ship_name = $name;
$ship_address = $address;
$ship_city = $city;
$ship_state = $state;
$ship_zip = $zip;
$ship_country = $country;
}

$conn = db_connect();

//insert customer address
$query = "select clienteid from clientes where
name = '$name' and address = '$address'
and city = '$city' and state = '$state'
and zip = '$zip' and country = '$country'";
$result = mysql_query($query);
if(mysql_numrows($result)>0)
{
$cliente_id = mysql_result($result, 0, 'clienteid');
}
else
{
$query = "insert into clientes values
('', '$name','$address','$city','$state','$zip','$count ry')";
$result = mysql_query($query);
if (!$result)
return false;
}
$query = "select clienteid from clientes where
name = '$name' and address = '$address'
and city = '$city' and state = '$state'
and zip = '$zip' and country = '$country'";
$result = mysql_query($query);
if(mysql_numrows($result)>0)
$clienteid = mysql_result($result, 0, 'clienteid');
else
return false;
$date = date('Y-m-d');
$query = "insert into orders values
('', $clienteid, ".$HTTP_SESSION_VARS['total_price'].", '$date', 'PARTIAL', '$ship_name',
'$ship_address','$ship_city','$ship_state','$ship_ zip',
'$ship_country')";
$result = mysql_query($query);
if (!$result)
return false;

$query = "select pedidoid from orders where
clienteid = $clienteid and
amount > ".$HTTP_SESSION_VARS['total_price']."-.001 and
amount < ".$HTTP_SESSION_VARS['total_price']."+.001 and
date = '$date' and
order_status = 'PARTIAL' and
ship_name = '$ship_name' and
ship_address = '$ship_address' and
ship_city = '$ship_city' and
ship_state = '$ship_state' and
ship_zip = '$ship_zip' and
ship_country = '$ship_country'";
$result = mysql_query($query);
if(mysql_numrows($result)>0)
$pedidoid = mysql_result($result, 0, 'pedidoid');
else
return false;


// insert each book
foreach($HTTP_SESSION_VARS['cart'] as $vinosid => $cantidad)
{
$detail = get_book_details($vinosid);
$query = "delete from articulos_pedido where
pedidoid = '$pedidoid' and vinosid = '$vinosid'";
$result = mysql_query($query);
$query = "insert into articulos_pedido values
('$pedidoid', '$vinosid', ".$detail['precio'].", $cantidad)";
$result = mysql_query($query);
if(!$result)
return false;
}

return $pedidoid;
}

?>
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 05:43.