Ver Mensaje Individual
  #9 (permalink)  
Antiguo 04/12/2009, 06:38
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Ayuda con in insert

La primera está mal, porque lo que necesitas es el valor de sólo uno de los campos (id_proveedor), y no los tres:
Código sql:
Ver original
  1. SELECT id_proveedor FROM proveedor WHERE rut = valorpedido;

En la segunda, la PK (id_centralizacion) no es autoincremental, por lo que se entiende que la estás incrementando a través de la aplicación y deberías estar ingresandola directamente, además de que id_tipo_doc está declarado NOT NULL; por lo que también debe ingresarse obligatoriamente, ya que no tienen valores por default:

Código sql:
Ver original
  1. INSERT INTO centralizaciones (id_centralizacion, id_tipo_doc, id_proveedor,  neto, num_doc)
  2. VALUES ('$valor_id', '$id_prov', '$id_tipodoc', 100, 696966);

Si se desea que id_centralizacion sea autoincremental, y olvidarte de manejarlo, deberás modificar la estructura de la tabla:

Código sql:
Ver original
  1. CREATE TABLE `centralizaciones` (
  2. `id_centralizacion` SMALLINT(6) AUTO_INCREMENT PRIMARY KEY NOT NULL,
  3. `id_proveedor` VARCHAR(6) NOT NULL,
  4. `id_tipo_doc` SMALLINT(6) NOT NULL,
  5. `neto` mediumint(9) NOT NULL,
  6. `num_doc` mediumint(9) NOT NULL
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Un tip final: IDs autoincrementales, decláralos INT y no SMALLINT o MEDIUMINT, y también siempre UNSIGNED. Tarde o temprano puedes quedarte corto con eso.

Los detalles del PHP no los pongo porque en esta sección no se permite código de programación, sólo SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)