Hola jerkan.Mi tabla de pedidos tiene una clave primaria llamada "pedidoid" que es autonumerico. Te pongo el insertar pedido(bastante largo) y la tabla de pedidos para que veas el codigo.
Código PHP:
function insertar_pedido($detalles_pedido)
{
global $HTTP_SESSION_VARS;
//extraer detalles_pedido como variables
extract($detalles_pedido);
//poner la direccion de envio y su direccion normal
if(!$nombre_envio&&!$direccion_envio&&!$ciudad_envio&&!$provincia_envio&&!$cp_envio&&!$usuario_envio)
{
$nombre_envio = $nombre;
$direccion_envio = $direccion;
$ciudad_envio = $ciudad;
$provincia_envio = $provincia;
$cp_envio = $cp;
$usuario_envio = $usuario;
}
$con = conexion_bd();
//inserta los datos de la direccion del cliente
$query = "select clienteid from clientes where
nombre = '$nombre' and direccion = '$direccion'
and ciudad = '$ciudad' and provincia = '$provincia'
and cp = '$cp' and usuario = '$usuario'";
$result = mysql_query($query);
if(mysql_numrows($result)>0)
{
$cliente_id = mysql_result($result, 0, 'clienteid');
}
else
{
$query = "insert into clientes values
('','$nombre','$direccion','$ciudad','$provincia','$cp','$usuario','','','','','','')";
$result = mysql_query($query) or die('Error de query: '.mysql_error());
if (!$result)
return false;
}
$query = "select clienteid from clientes where
nombre = '$nombre' and direccion = '$direccion'
and ciudad = '$ciudad' and provincia = '$provincia'
and cp = '$cp' and usuario = '$usuario'";
$result = mysql_query($query);
if(mysql_numrows($result)>0)
$clienteid = mysql_result($result, 0, 'clienteid');
else
return false;
$fecha = date('Y-m-d');
$query = "insert into pedidos values
('', $clienteid, ".$HTTP_SESSION_VARS['precio_total'].", '$fecha', 'Pendiente', '$nombre_envio',
'$direccion_envio','$ciudad_envio','$provincia_envio','$cp_envio',
'$usuario_envio')";
$result = mysql_query($query);
if (!$result)
return false;
$query = "select pedidoid from pedidos where
clienteid = $clienteid and
importe > ".$HTTP_SESSION_VARS['precio_total']."-.001 and
importe < ".$HTTP_SESSION_VARS['precio_total']."+.001 and
fecha= '$fecha' and
estado_pedido = 'Pendiente' and
nombre_envio = '$nombre_envio' and
direccion_envio = '$direccion_envio' and
ciudad_envio = '$ciudad_envio' and
provincia_envio = '$provincia_envio' and
cp_envio = '$cp_envio' and
usuario_envio = '$usuario_envio'";
$result = mysql_query($query);
if(mysql_numrows($result)>0)
$pedidoid = mysql_result($result, 0, 'pedidoid');
else
return false;
// inserta todos los vinos
foreach($HTTP_SESSION_VARS['carro'] as $vinosid => $cantidad)
{
$detalles = info_vinos($vinosid);
$query = "delete from articulos_pedido where
pedidoid = '$pedidoid' and vinosid = '$vinosid'";
$result = mysql_query($query);
$query = "insert into articulos_pedido values
('$pedidoid', '$vinosid', ".$detalles['precio'].", $cantidad)";
$result = mysql_query($query);
if(!$result)
return false;
}
return $pedidoid;
}
?>
TABLA PEDIDOS:
CREATE TABLE `pedidos` (
`pedidoid` int(10) unsigned NOT NULL auto_increment,
`clienteid` int(10) unsigned NOT NULL default '0',
`importe` float(6,2) default NULL,
`fecha` date NOT NULL default '0000-00-00',
`estado_pedido` varchar(10) default NULL,
`nombre_envio` varchar(40) NOT NULL default '',
`direccion_envio` varchar(40) NOT NULL default '',
`ciudad_envio` varchar(20) NOT NULL default '',
`provincia_envio` varchar(20) default NULL,
`cp_envio` varchar(10) default NULL,
`usuario_envio` tinytext NOT NULL,
PRIMARY KEY (`pedidoid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=132 ;
A ver si damos con la solucion. Antes funcionaba perfectamente. GRACIAS