Jump to content
Daniel Alves

MySql - Column count doesn't match value count at row 1

Recommended Posts

Daniel Alves

Boas caros amigos tá a dar-me este erro quando tento fazer o insert...

Ja revi todo o código, já conferi as variaveis... Mas nao encontro o erro  :wallbash:

Alguem sabe porque será que mé dá este erro?!

a query está assim:

INSERT INTO contratos (operario_id,nome_operario,local_obra,valor_mensal,sub_ferias,sub_natal,ajudas_custo,data_contrato,empresa,data_inicio,data_termino,nr_identificacao_empresa,rua,nr_porta,localidade,cod_postal,pais,id_contrato) VALUES(NULL,'".$_POST['operario_id']."','".$_POST['nome_operario']."','".$_POST['local_obra']."','".$_POST['valor_mensal']."','".$_POST['sub_ferias']."','".$_POST['sub_natal']."','".$_POST['ajudas_custo']."','".$_POST['data_contrato']."','".$_POST['empresa']."','".$_POST['data_inicio']."','".$_POST['data_termino']."','".$_POST['nr_identificacao_empresa']."','".$_POST['rua']."','".$_POST['nr_porta']."','".$_POST['localidade']."','".$_POST['cod_postal']."','".$_POST['pais']."','".$_POST['id_contrato']."')

AJUDEM POR FAVOR

Share this post


Link to post
Share on other sites
softklin

O erro é bem explícito: estás a tentar inserir 19 valores quando só escolheste 18 colunas. Revê se tens valores a mais ou colunas a menos.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
Daniel Alves

Que cena estou farto de olhar para o código e está tudo a bater certo.

Mas vou rever uma vez mais...

Eis o código:

INSERT INTO contratos (operario_id,nome_operario,local_obra,valor_mensal,sub_ferias,sub_natal,ajudas_custo,data_contrato,empresa,data_inicio,data_termino,nr_identificacao_empresa,rua,nr_porta,localidade,cod_postal,pais,id_contrato) VALUES(NULL,'".$_POST['operario_id']."','".$_POST['nome_operario']."','".$_POST['local_obra']."','".$_POST['valor_mensal']."','".$_POST['sub_ferias']."','".$_POST['sub_natal']."','".$_POST['ajudas_custo']."','".$_POST['data_contrato']."','".$_POST['empresa']."','".$_POST['data_inicio']."','".$_POST['data_termino']."','".$_POST['nr_identificacao_empresa']."','".$_POST['rua']."','".$_POST['nr_porta']."','".$_POST['localidade']."','".$_POST['cod_postal']."','".$_POST['pais']."','".$_POST['id_contrato']."')

Share this post


Link to post
Share on other sites
Daniel Alves

Está tudo pela mesma ordem que aparece na tabela e tudo  :wallbash:

Não estou a dar com o erro juro.  :happybday:

Sou novo em php. Estou a estagiar. E é primeira vez que faço um projecto em php. Eu copiei o código de outro formulario que ja tenho a funcionar e alterei apenas o nome das variaveis.

Supostamente devia funcionar  B)

Amanha acaba o estagio e eu ainda nao consegui terminar isto  :bored:

Share this post


Link to post
Share on other sites
falco

Estás de certeza...

Já agora isso não é forma de se fazerem as coisas... Esse teu código é um perigo de segurança... É que nem há validações de input...

Share this post


Link to post
Share on other sites
Daniel Alves

Eu sei.

O código está muito cru ainda. Queria que funcionasse para poder então ter atenção a esses pormenores.

Não encontro o problema mesmo. Viram algo errado no código?!

Estão a ser inseridos 18 valores para 18 campos... Está bem acho eu.  :happybday:

Share this post


Link to post
Share on other sites
brunoais

Estás de certeza...

Já agora isso não é forma de se fazerem as coisas... Esse teu código é um perigo de segurança... É que nem há validações de input...

... E seria melhor se escrevesses isso, pelo menos, em 4 linhas. Assim como está, está quase ilegível!

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
Daniel Alves

INSERT INTO contratos (operario_id,nome_operario,local_obra,valor_mensal,sub_ferias,sub_natal,ajudas_custo,data_contrato,empresa,data_inicio,data_termino,nr_identificacao_empresa,rua,nr_porta,localidade,cod_postal,pais,id_contrato) 
VALUES(NULL,'".$_POST['operario_id']."','".$_POST['nome_operario']."','".$_POST['local_obra']."','".$_POST['valor_mensal']."','".$_POST['sub_ferias']."','".$_POST['sub_natal']."','".$_POST['ajudas_custo']."','".$_POST['data_contrato']."','".$_POST['empresa']."','".$_POST['data_inicio']."','".$_POST['data_termino']."','".$_POST['nr_identificacao_empresa']."','".$_POST['rua']."','".$_POST['nr_porta']."','".$_POST['localidade']."','".$_POST['cod_postal']."','".$_POST['pais']."','".$_POST['id_contrato']."')

Assim já dá?

Tipo eu posso dar quebras de linha? O código funca na mesma?!

Epah desculpem se as perguntas estao a ser parvas mas JURO que sou iniciante nisto. Fui largado aqui no estagio e pediram-me para desenvolver isto. Eu estava habituado a VB6 com access... Isto não tem nada haver mesmo.  :wallbash:

Share this post


Link to post
Share on other sites
herty

O erro deve ser de algum campo que tas a inserir que não bate certo com o tipo definido da coluna.

Verifica por exemplo o "id_contrato" tas a inserir um POST entre pelicas, um id nvarchar?.

Cumps

Share this post


Link to post
Share on other sites
softklin

Estão a ser inseridos 18 valores para 18 campos... Está bem acho eu.  :happybday:

Tens razão, o Mysql deve-se ter enganado. E eu também me enganei, que até contei duas vezes (terceira com a que fiz agora)... /irony

Segue o conselho do brunoais e formata o teu código para perceberes onde está o erro. Queres que façam as coisas por ti não vai funcionar. Podes por, por exemplo, cada 2 colunas por linha, ou como te der mais jeito, e vais dar com o erro de certeza.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
Daniel Alves

Peço desculpa se dei a entender que queria que fizessem as cenas por mim. Não era essa a intenção. Até porque todo o projecto que tenho fiz sozinho. Andar aqui a fazer pesquisas e testar código é bem complicado.

O erro deve ser de algum campo que tas a inserir que não bate certo com o tipo definido da coluna.

Amigo acho que o erro deve estar mesmo aí.

Eu acho que é um post.

mas eu pus algumas variaveis como decimal. Sera por isso?! A testar não tou a inserir valores decimais. Vou alterar de decimal para int e tentar. MUITO OBRIGADO MESMO

Share this post


Link to post
Share on other sites
Daniel Alves

Obrigado a TODOS pela ajuda.

Liguei ao meu professor. De tarde ele vai passar por aqui para me ajudar.

Não estou a entender os erros mesmo.

Bem muito obrigado pela ajuda e desculpem qualquer coisa.

Só estou a tentar aprender.

Abraços

Share this post


Link to post
Share on other sites
brunoais

INSERT INTO contratos (operario_id,	         nome_operario,           local_obra,                    valor_mensal,               sub_ferias,                sub_natal,                 ajudas_custo,             data_contrato,                   empresa,                  data_inicio,              data_termino,         nr_identificacao_empresa,                rua,                             nr_porta,                localidade,            cod_postal,               pais,                  id_contrato) 
VALUES(                   NULL,       '".$_POST['operario_id']."','".$_POST['nome_operario']."','".$_POST['local_obra']."','".$_POST['valor_mensal']."','".$_POST['sub_ferias']."','".$_POST['sub_natal']."','".$_POST['ajudas_custo']."','".$_POST['data_contrato']."','".$_POST['empresa']."','".$_POST['data_inicio']."','".$_POST['data_termino']."','".$_POST['nr_identificacao_empresa']."','".$_POST['rua']."','".$_POST['nr_porta']."','".$_POST['localidade']."','".$_POST['cod_postal']."','".$_POST['pais']."','".$_POST['id_contrato']."')

Como eu tb senti pena do rapaz faço isto por ti.

Vê lá se agora já faz mais sentido ele dar o problema...

Se bem q te diga... O nº de colunas está diferente do nº de valores. E mais: os nomes não parecem concordar...  🤔.

Acho q afinal estão 2 1 a mais em baixo (ou uma permuta qq disso) :happybday:

ADD: Tinha encontrado um erro no q fiz, np, já o resolvi.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.