Error de query: Entrada duplicada '' para la clave 3
Os dejo el codigo.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. Me he dado cuenta que al llegar al pedidoid numero 132 es cuando aparece el error.
Código PHP:
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 ;
 
 

