Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/05/2006, 03:29
sneider
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
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($result0'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($result0'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($result0'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