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 originalSELECT 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 originalINSERT INTO centralizaciones (id_centralizacion, id_tipo_doc, id_proveedor, neto, num_doc)
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 originalCREATE TABLE `centralizaciones` (
`id_centralizacion` SMALLINT(6) AUTO_INCREMENT PRIMARY KEY NOT NULL,
`id_proveedor` VARCHAR(6) NOT NULL,
`id_tipo_doc` SMALLINT(6) NOT NULL,
`neto` mediumint(9) NOT NULL,
`num_doc` mediumint(9) NOT NULL
) 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.