Jump to content
  • 0
Nathan0505

Não consigo gravar dados no banco de dados

Question

Meu código html:

---------------------------------

<!DOCTYPE html>
<html>
<head>
    <title>Cadastro</title>
    <meta charset="utf-8">
</head>
<body>

<form method="POST" action="bancob.php">


<label>Numero do cliente:</label>
<input type="text" name="nmrcli">

<label>Data de contratação</label>
<input type="text" name="dtcont">

<label>Data de cadastramento</label>
<input type="text" name="dtcad">

<label>Nome da Organização ou cliente</label>
<input type="text" name="nomecli">

<label>CNPJ/CPF</label>
<input type="text" name="cnpf">

<label>Endereço Completo</label>
<input type="text" name="endcomp">

<label>Nome para Contato</label>
<input type="text" name="nomecont">

<label>Email para contato e operacionalização dos trabalhos</label>
<input type="text" name="emailcont">

<label>Email do Representante Legal</label>
<input type="text" name="emailrl">

<label>Sites/Blogs/Lojas Virtuais do Cliente:</label>
<input type="text" name="sblcli">

<label>Tels para contato:</label>
<input type="text" name="telcont">

<label>Cel/Whatsapp:</label>
<input type="text" name="celwpp">

<label>Serviços principais contratados:</label>
<input type="text" name="servicospricont">

<label>Valor Total do Serviços Principais</label>
<input type="text" name="valortotal">

<label>Número de Parcelas:</label>
<input type="text" name="numparc">

<label>Data de Vencimento</label>
<input type="text" name="dtvenc">

<label>Forma de Pagamento:</label>
<input type="radio" name="fpagto" value="boleto"> Boleto<br>
<input type="radio" name="fpagto" value="transferencia"> Transferância<br>

<label>Serviços Secundários contratados:</label>
<input type="text" name="servsseccont">

<label>Valor Total do pagto extra:</label>
<input type="text" name="valortotalpe">

 <label>Número de Parcelas:</label>
 <input type="text" name="numparc">

<label>Forma de pagamento serviços secundários </label>
 <input type="radio" name="fpagto2" value="boleto"> Boleto<br>
<input type="radio" name="fpagto2" value="transferencia"> Transferância<br>

 <label>Valor total Mensal:</label>
 <input type="text" name="totalmens">

<input type="submit" value="enviar">
</form>
</body>
</html>

 

Meu código phpl:

---------------------------------

<?php 
 
$nmrcli = $_POST['nmrcli'];
$dtcont = $_POST['dtcont'];
$dtcad = $_POST['dtcad'];
$nomecli = $_POST['nomecli'];
$cnpf = $_POST['cnpf'];
$endcomp = $_POST['endcomp'];
$nomecont = $_POST['nomecont'];
$emailcont = $_POST['emailcont'];
$emailrl = $_POST['emailrl'];
$sblcli = $_POST['sblcli'];
$telcont = $_POST['telcont'];
$celwpp = $_POST['celwpp'];
$servicospricont = $_POST['servicospricont'];
$valortotal = $_POST['valortotal'];
$numparc = $_POST['numparc'];
$dtvenc = $_POST['dtvenc'];
$fpagto = $_POST['fpagto'];
$servsseccont = $_POST['servsseccont'];
$valortotalpe = $_POST['valortotalpe'];
$numparc = $_POST['numparc'];
$fpagto2 = $_POST['fpagto2'];
$totalmens = $_POST ['totalmens'];
$connect = mysql_connect('localhost','root','');
$db = mysql_select_db('banco');

        $query = "INSERT INTO clientes (numero_do_cleinte,data_de_contratação,data_de_cadastramento,nome_do_cliente_ou_organizacao,cnpj_cpf,end_comp,nome_para_contato,email_para_contato,email_rep_legal,site_blog_loja_virtual_do_cliente,tel_contato,cel_whats,servicos_pri_contratados,valor_total_servicos_pri,numero_de_parcelas,data_de_vencimento,forma_de_pagto,servicos_sec_contratados,valor_total_pagto_extra,numero_de_parcelas_sec,forma_de_pagto_sec,valor_total_mensal) VALUES ('$nmrcli','$dtcont','$dtcad','$nomecli','$cnpf','$endcomp','$nomecont','$emailcont','$emailrl','$sblcli','$telcont','$celwpp','$servicospricont','$valortotal','$numparc','$dtvenc','$fpagto','$servsseccont','$valortotalpe','$numparc','$fpagto2','$totalmens')";
        $insert = mysql_query($query,$connect);
         
        if($insert){
          echo"<script language='javascript' type='text/javascript'>alert('Usuário cadastrado com sucesso!');window.location.href='login.html'</script>";
        }else{
          echo"<script language='javascript' type='text/javascript'>alert('Não foi possível cadastrar esse usuário');</script>";
        }
   
?>

 

Agradeço antecipadamente......

Edited by Matheus Tavares
Adicionar marcação para código

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

As chances de ser um erro de digitação (pela má formatação e nomes indecifráveis das variáveis) são estratosféricas.

 

1 - Organize seu código.

<?php
$query = "
    INSERT INTO clientes (
        numero_do_cleinte,
        data_de_contratação,
        data_de_cadastramento,
        nome_do_cliente_ou_organizacao,
        cnpj_cpf,
        end_comp,
        nome_para_contato,
        email_para_contato,
        email_rep_legal,
        site_blog_loja_virtual_do_cliente,
        tel_contato,
        cel_whats,
        servicos_pri_contratados,
        valor_total_servicos_pri,
        numero_de_parcelas,
        data_de_vencimento,
        forma_de_pagto,
        servicos_sec_contratados,
        valor_total_pagto_extra,
        numero_de_parcelas_sec,
        forma_de_pagto_sec,
        valor_total_mensal
    )
    VALUES
    (
        '$nmrcli',
        '$dtcont',
        '$dtcad',
        '$nomecli',
        '$cnpf',
        '$endcomp',
        '$nomecont',
        '$emailcont',
        '$emailrl',
        '$sblcli',
        '$telcont',
        '$celwpp',
        '$servicospricont',
        '$valortotal',
        '$numparc',
        '$dtvenc',
        '$fpagto',
        '$servsseccont',
        '$valortotalpe',
        '$numparc',
        '$fpagto2',
        '$totalmens'
    )";

// Ainda não é o ideal, mas pelo menos assim você consegue visualizar melhor

 

2 - Renomeie suas variáveis para nomes legíveis e decifráveis. Isso vai ajudar na manutenibilidade e facilitar na busca por erros de digitação.

 

3 - Verifique os nomes das variáveis e das colunas no banco de dados.

 

4 - Se ainda não estiver funcionando, printe essa variável de consulta na tela, copie e cole no seu gerenciador de banco de dados e execute, para ver se funciona:

echo $query;

 

Se a consulta estiver rodando sem problemas no gerenciador, o erro é provavelmente no fato de você estar utilizando mysql_query(), que é uma função obsoleta em versões mais recentes do PHP.

 

O ideal é você aproveitar que ainda é um código pequeno e já convertê-lo. Veja como fazer isso:

http://rberaldo.com.br/pdo-mysql/ 

https://www.webdevbr.com.br/pdo-e-seguranca-crud-com-pdo-e-mysql

http://rberaldo.com.br/mysql-obsoleto-php/

https://forum.imasters.com.br/topic/565800-crud-introdução-a-pdo/

 

Share this post


Link to post
Share on other sites
  • 0

Não foi erro de digitação. Você não abriu conexão com o Banco de Dados.

8 horas atrás, Nathan0505 disse:

$connect = mysql_connect('localhost','root',''); $db = mysql_select_db('banco');

Tira essa variável $db. No seu código você só está dizendo o que é a variável e não está executando.

 

Faça assim:

$connect = mysql_connect('localhost','root','');
mysql_select_db('banco', $connect);


Caso continue dando erro, posta o que o erro diz na página.

Share this post


Link to post
Share on other sites
  • 0

Voce também pode simplificar o seu código INSERT. 

8 horas atrás, Nathan0505 disse:

"INSERT INTO clientes (numero_do_cleinte,data_de_contratação,data_de_cadastramento,nome_do_cliente_ou_organizacao,cnpj_cpf,end_comp,nome_para_contato,email_para_contato,email_rep_legal,site_blog_loja_virtual_do_cliente,tel_contato,cel_whats,servicos_pri_contratados,valor_total_servicos_pri,numero_de_parcelas,data_de_vencimento,forma_de_pagto,servicos_sec_contratados,valor_total_pagto_extra,numero_de_parcelas_sec,forma_de_pagto_sec,valor_total_mensal) VALUES ('$nmrcli','$dtcont','$dtcad','$nomecli','$cnpf','$endcomp','$nomecont','$emailcont','$emailrl','$sblcli','$telcont','$celwpp','$servicospricont','$valortotal','$numparc','$dtvenc','$fpagto','$servsseccont','$valortotalpe','$numparc','$fpagto2','$totalmens')";


Ao invés de dizer todas as suas tabelas que são muitas você pode simplismente fazer assim:

INSERT INTO `clientes` VALUES ('$nmrcli','$dtcont','$dtcad','$nomecli','$cnpf','$endcomp','$nomecont','$emailcont','$emailrl','$sblcli','$telcont','$celwpp','$servicospricont','$valortotal','$numparc','$dtvenc','$fpagto','$servsseccont','$valortotalpe','$numparc','$fpagto2','$totalmens')"

Portanto que coloque os dados na mesma ordem dos campos no banco de dados.

 

Se algum campo for AUTO_INCREMENT voce deve colocar da seguinte forma. Supondo que o segundo campo é AUTO_INCREMENT
 

INSERT INTO `tabela` VALUES ('Valor1','','Valor3','Valor4'); //Só colocar ''

 

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

  • Similar Content

    • By mm_edilson
      Boa noite, amigos. Estou tentando inserir data completa e hora, assim:
      Segunda, 14 de Junho de 2021, 19:05:23
      Mas está saindo assim: 
      1, 1452021, 19:05:23.
      Segue meu código. Alguém poderia me ajudar a ver o que está errado?
       
      <script type="text/javascript"> function startTime() { var today=new Date(); var year=today.getYear(); if (year<2000) year += (year <1900) ? 1900 : 0 var day=today.getDay(); var month=today.getMonth(); var daym=today.getDate(); if (daym<10) daym="0"+daym var dayarray=new Array("Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"); var montharray=new Array("de Janeiro de ","de Fevereiro de ","de Março de ","de Abril de ","de Maio de ","de Junho de ","de Julho de ","de Agosto de ","de Setembro de ","de Outubro de ","de Novembro de ","de Dezembro de "); var h=today.getHours(); var m=today.getMinutes(); var s=today.getSeconds(); // adicione um zero na frente de números<10 m=checkTime(m); s=checkTime(s); document.getElementById('txt').innerHTML=day+","+daym+month+year+", "+h+":"+m+":"+s; t=setTimeout('startTime()',500); } function checkTime(i) { if (i<10) { i="0" + i; } return i; } </script> </head> </head> <body onload="startTime()"> <div id="txt"></div> </body>  
    • By thiagocarelli
      Bom dia pessoal, Estou travado em um array (imagem), a questão é que preciso criar uma tabela por empresa ( Organization Name )  onde contabilize empresa ++ sempre que o mesmo nome for citado em ( Organization Name ) porem ao mesmo tempo preciso contabilizar separado quando o atendente ( User Name ) seja diferente de outro atendente.. Exemplo..
       
      3 Interações       -       Google      -      João 
      1 Interações       -       Google      -      Joaquim 
      2 Interações       -       Ti Soft       -      Pedro
      7 Interações       -       Exchange  -      João 
       
      Consegui fazer o código que separava por organização mas ele perde o controle das interações por funcionários..
       
      Array ( [success] => 1 [data] => Array ( [0] => Array ( [organization] => Array ( [name] => JOSDF ) [user] => Array ( [name] => Misael Joana ) ) [1] => Array ( [organization] => Array ( [name] => DKGFS ) [user] => Array ( [name] => Misael Joana ) ) ) )  
    • By Jack Oliveira
      Ola pessoal boa noite
       
      Bom pessoal estou fazendo uma função para formatar url de rede social,
      FACEBOOK, INSTAGRAM & TWITTER, não sei se esta da forma correta em fazer.
      Ex: https://www.facebook.com/minha-pagina   quero pegar apenas o final que seria minha-pagina 
      Isso seria tanto no instagram e twitter
       
      Fiz da seguinte forma
      <?php function FormatarUrlRedeSocial($URL){ if (strstr($URL, 'https://facebook.com/') || strstr($URL, 'http://facebook.com/')) { $UrlRedeSocial = explode('facebook.com/', $URL); return $UrlRedeSocial[1]; } elseif (strstr($URL, 'http://') || strstr($URL, 'https://')){ $UrlRedeSocial = explode($URL); $UrlRedeSocial = explode($UrlRedeSocial[1]); return $UrlRedeSocial[0]; } else { return $URL; } } ?> Porem quero que seja apenas uma função unica para todos 
      Tipo
      https://www.facebook.com/<?= FormatarUrlRedeSocial($dados['url_facebook']); ?> https://www.instagram.com/<?= FormatarUrlRedeSocial($dados['url_instagram']); ?> https://www.twitter.com/<?= FormatarUrlRedeSocial($dados['url_twitter']); ?>  
      Bom do porque não usar os link´s direto, bom pois em outras parte que vou pegar este nome no final não poderia ter o link completo
      Então decide fazer uma função onde não vou precisar criar vários campos na tabela sem necessidades. Espero que possam entender o que preciso.
       
      Se puder da uma ajuda fico grato...
    • By Xicara
      Olá boa tarde!
       Eu tenho um jogo e um site para cadastro de contas. E agora estou querendo implementar um sistema VIP de preferencia com dias para acabar! No meu  banco de dados do jogo, tenho a tabela: contas com os campos: id / senha / ip / e agora adicionei o campo vip, o valor é de 1 a 5 e já esta funcional no jogo porém esse beneficio está permanente para os jogadores, minha duvida é: o valor do campo vip tem como eu programar para cada 30 dias zerar novamente automático? Não zerar de todos, mais sim daquele que atingiu os 30 dias, eu estava pensando em adicionar mais um campo: data de inicio, será que tem possibilidade por exemplo o site identificar a data e excluir o valor do campo quando atingir os 30 dias?
      Obrigado pela atenção!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.