Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/07/2013, 19:39
matiD
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 15 años, 7 meses
Puntos: 0
Como puedo tomar un id (primary key) de un campo que acabo de cargar para usarlo

Como estan? estoy realizando la carga de unas ordenes, las mismas llevan marca modelo numero de serie y demás.

Dichas ordenes en la base de datos se identifican con un ID que está como PRIMARY KEY y es auto_increment.

Ahora bien, al momento de realizar la carga necesito tomar ese ID de la base de datos para registrar el movimiento que lo tengo en otra tabla.

El problema es que el ID de la orden es el único valor que no puede llegar a repetirse dentro de la tabla de ordenes entonces no encuentro la forma de tomar ese valor, ya que si hago referencia a otros valores de los que acabo de tomar para llamar a esa fila tengo una pequeña posibilidad de que haya 2 campos iguales.

Bien dejo aquí las tablas de Ordenes y de Movimientos que son las que estoy tratando ahora mismo.

Código MySQL:
Ver original
  1. ordenes(
  2. id_cliente int unsigned NOT NULL,
  3. marca varchar(20),
  4. modelo varchar(20),
  5. numserie varchar(40) NOT NULL,
  6. procedencia int unsigned NOT NULL,
  7. categoria int unsigned NOT NULL,
  8. servicio int unsigned NOT NULL,
  9. precio decimal(6,2),
  10. detalles varchar(255),
  11. garantia int,
  12. PRIMARY KEY (orden),
  13. INDEX (numserie),
  14. FOREIGN KEY (id_cliente) REFERENCES clientes(id_clientes),
  15. FOREIGN KEY (procedencia) REFERENCES locales(id_locales),
  16. FOREIGN KEY (categoria) REFERENCES categ_servicios(id_categservicios),
  17. FOREIGN KEY (servicio) REFERENCES servicios(id_servicios)
  18. );
  19.  
  20. CREATE TABLE IF NOT EXISTS movimientos(
  21. fecha DATETIME,
  22. movimiento varchar(2),
  23. FOREIGN KEY (ORDEN) REFERENCES ordenes(ORDEN)
  24. );

La idea es que dependiendo el momento pueda registrar movimientos en esa tabla en referencia a la misma orden.

Mi problema reside en la primer carga que realizo de una orden. Al cargar la orden no se que número le toca, motivo por el cual no puedo utilizar dicho ID para localizarla. entonces me he trabado jaja...

En sintesis lo que necesito es que al realizar la carga de alguna forma pueda tomar el ID de la orden que vendría siendo el campo ORDEN de la tabla ordenes.

Así cargo una orden en la tabla
Código MySQL:
Ver original
  1. INSERT INTO ordenes (clave,id_cliente,marca,modelo,numserie,procedencia,categoria,servicio,precio,detalles)
  2. VALUES ('$clave','$idcliente','$marca','$modelo','$numserie','$procedencia','$categoria','$servicio','$precio','$detalles')

luego necesito registrar por ejemplo el primer movimiento de la orden que es que está fue cargada pero no puedo porque desconozco el número de orden que se le autoasigno jaja.

Código MySQL:
Ver original
  1. INSERT INTO movimientos VALUES ('¿¿¿ORDEN???',NOW(),'1')

Resumiento lo que necesito es tomar el valor de ORDEN de la orden de trabajo que acabo de cargar.

Muchas gracias a quien pueda ayudarme!