Ir ao conteúdo
  • Cadastre-se

PHP Conectar banco de dados ao formulário html


Posts recomendados

Estou tentando conectar meu formulário html ao mysql usando phpmyadmin,mas não estou conseguindo,pois quando clico em enviar,aparece todos os códigos do php,que era pra fazer a conexão do servidor com o formulário ,gostaria de saber como posso estar resolvendo isso por favor!  

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderador

@Carlos FW Informatica Olá,

 

Se está aparecendo o código em tela, tem algumas coisas que podem estar ocorrendo... uma é você não usar um arquivo php(o que não é seu caso).  A outra possibilidade é que o servidor apache não está ativo... 

 Eu recomendo fortemente que você desinstale esse wamp,  e instale o easyPHP 17.0   que é a versão mais recente. 

 

Quando instalar o programa, você vai abrir ele pelo icone no desktop, e aí vai reparar que vai ter o icone dele no cantinho direito perto das horas do pc, Você terá que abrir o dashboard do programa, clicando com o botão direito em cima do icone que está no cantinho ali perto das horas.. e clicando onde diz  "open Dashboard".  Eai ele vai abrir direto no navegador.

 

Vai abrir esta tela:

 

spacer.png

 

Como você pode ver, na tela do localhost,  clique no botão start verde no HTTP Server, para iniciar o servidor apache.   

Clique também no botão start verde do Database server, para iniciar o banco de dados mysql.

 

Com eles 2 ativos,  repare ali na flecha vermelha,  e na linha vermelha marcada...   aquele lugar é o seu root,  é onde você deve colocar os arquivos.  Basicamente, dentro da pasta do easyPHP, tem uma pasta com o nome de "eds-www"   esta pasta é o root.    você pode acessar ela pelo navegador pelo endereço:  http://127.0.0.1/     ou localhost. 

Quando abrir pelo  navegador ,  verá a tela desta maneira:

 

spacer.png

Repare que há algumas coisas ali.. no seu caso vai estar vazio, só com o arquivo phpinfo.php.. você pode deletar este arquivo..

Então para sua organização, crie uma pasta dentro do eds-www   com o nome do seu projeto... por exemplo:

 

teste

 

Então coloque os seus arquivos dentro desta pasta... aí você vai acessar pelo link:  http://127.0.0.1/teste

 

spacer.png

 

Como podes ver na imagem acima... no caso é só um arquivo html comum... mas você pode usar o php ali como  index,php  ou  criando um arquivo index.html e dentro deste arquivo html, colocar no action do form,  o arquivo  serv.php... 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderador

@Carlos FW Informatica Remova os espaços dos nomes dos arquivos e pastas..... 

Está com o apache e o mysql  ativado no gerenciador do easyphp?   Como estão seus códigos? nome de arquivos? como esta a estrutura no seu root?

 

Sem saber isso não consigo lhe ajudar...  porque aqui para eu, tudo funciona como tem que ser.

Link para o comentário
Compartilhar em outros sites

@DiF nesse exato momento não estou mais no pc,mas vou deixar os arquivos aqui para voce dar uma olhada pra mim depois voce mim informa e me fala...

 

mas a estrutura eu queria mais ou menos assim:

 

Cliente -> meu servidor (banco de dados)

Arquivos de programação.zip

 

5 horas atrás, Carlos FW Informatica disse:

@DiF nesse exato momento não estou mais no pc,mas vou deixar os arquivos aqui para voce dar uma olhada pra mim depois voce mim informa e me fala...

 

mas a estrutura eu queria mais ou menos assim:

 

Cliente -> meu servidor (banco de dados)

Arquivos de programação.zip 1.65 kB · 0 downloads

@DiFesqueci de mencionar que esses arquivos que lhe mandei estão no meu celular e do computador está diferente do celular.

Link para o comentário
Compartilhar em outros sites

  • Moderador

 

@Carlos FW Informatica 

Bom.. se ambos são diferentes, eu espero você postar aqui em formato de texto, com o botão CODE <> a versão do código que você está usando atualmente. 

 

Mas o que eu posso te dizer por agora, é que  o method no formulário, deve ser POST,   e no arquivo php você precisa receber estes dados usando o $_POST["nome do campo"]

 

exemplo:

 

<input type="text"  name="nome" />

 

no php

$nome = $_POST["nome"];

 

E por aí vai...

 

Quando eu digo estrutura, estou me referindo ao root, como você deixou os arquivos lá no diretorio  eds_www   como no exemplo que eu dei ali em cima.

 

Basicamente você tem que deixar assim:

 

root

|

|- teste

      |-index.html

      |-arquivoPHP.php

 

onde você vai acessar depois pelo  127.0.0.1/teste

 

onde quando você emitir o formulário,  os dados serão passado para o arquivo php...   

para conectar com o banco de dados você precisa usar uma função de conexão...  e para inserir você usa uma outra função  de query...   enfim...  você precisa fazer isso sozinho para entender, não seria ideal eu dar o código pronto.

 

Link para o comentário
Compartilhar em outros sites

@DiF code html:

<div class="formulario">
         <form method="post" action="conexao.php">



<label for="nome">

</label>

       <input name="nome" type="text" id="nome" size="51" placeholder="Nome">

<label for="tel">

</label>

           <input name="tel" type="text" id="tel" size="51" placeholder="Telefone">

<input type="submit" name="cadastro" id="cadastro" value="Cadastrar"/>
       <input type="reset" name="apagar" id="apagar" value="Excluir"/>

</form>

 

Code php:

<?php



$dbhost="localhost";
$dbusername="root";
$dbpassword="";
$dbname="imperio verde";

$conexao = new mysqli ($dbhost,$dbusername,$dbpassword,$dbname);

if ($conexao->connect_errno);
{
  echo("falha!");
}
else 
{
  echo ("conectado!")
}



?>

 

Quando eu abro o arquivo conexao.php no navegador,aparece que está conectado,mas quando eu insiro os dados pra preencher no database criada do phpmyadmin,ele não preenche as informações,por que?

 

eu estou usando os mesmos códigos desse vídeo:

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Carlos FW Informatica Não insere, porque você não recebeu os dados do formulário no arquivo php,  e também porque você não criou a instrução SQL se inserção dos dados no banco de dados.

 

No meu post #07, eu dei o exemplo de como receber o dado no php.

 

Já para a inserção de dados, você precisa  criar a instrução usando a função  mysqli_query(),  onde dentro do parentese, você vai colocar a sintaxe do banco de dados.. algo como

INSERT into.... e etc...   segue o Vídeo que você postou para ter uma noção.

 

Particularmente, não recomendo muito que faça exatamente igual ao vídeo, no caso,  deixar separado um arquivo de credenciais do banco de dados, e deixar um arquivo php somente para receber os dados e processar para inserir no banco de dados.

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Carlos FW Informatica Mas ele mostra em Vídeo extamente como ele faz.   KKKK

 

você viu o Vídeo inteiro ou foi pulando partes?  Entenda, que eu estou evitando de dar a parte dos códigos, justamente porque você precisa aprender..  porque se eu simplesmente colocasse, só iria copiar e colar. O intuito é você aprender.  O Vídeo explica muito bem passo a passo, embora eu faça de outra maneira, esta é bem válida.

 

No vídeo, ele mostra como ele faz a partir dos 7:27 ao  10:00 minutos de Vídeo.   Ps: Não esquece, que se você fazer do jeito dele, o seu formulário, deverá ser formulario.php   e não formulario.html

 

 

1 hora atrás, Carlos FW Informatica disse:

mysqli_query(insert)?

Como eu disse anteriormente, dentro dos parenteses, você vai colocar a instrução SQL de insert,  eu só dei o exemplo simples, mas no vídeo tem a sintaxe completa.

 

Deixo o link de pesquisa sobre como usar o insert into no php

Link para o comentário
Compartilhar em outros sites

@DiF eu entendo seu lado de não querer fornecer código pronto,sem nenhum problema mano,amo fazer programação,sim eu assistir o vídeo completo fiz tudo,só que quando chega na parte que eu ti falei,o négocio não flui mais,simplesmente para ali,não estou identificando o qual seria o erro que estou cometendo 😅

 

Criei um código aqui mas não sei se vai funcionar...

$sql = "insert into imperio verde('nome','tel','endereco','produto','quantidsde')";



if ($conexao->query($sql) === TRUE) {

  echo "New record created successfully";

} else {

  echo "Error: " . $sql . "<br>" . $conexao->error;

}



$conexao->close();

 

Vou testar esse código de cima amanhã pra vê...😅

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Carlos FW Informatica O código provavelmente não vai funcionar... pois está errado.... rsrs

 

$dbhost="localhost";
$dbusername="root";
$dbpassword="";
$dbname="imperioVerde";

$conexao = new mysqli ($dbhost,$dbusername,$dbpassword,$dbname);



$sql = "insert into imperioVerde('nome','tel','endereco','produto','quantidade') VALUES ('$nome', '$tel', '$endereco', '$produto', $quantidade);";

$cadastra = mysqli_query($conexao, $sql);

if ($cadastra) {

  echo "New record created successfully";

} else {

  echo "Error: " . $sql . "<br>" . $conexao->error;

}



$conexao->close();

 

 

Mas, ainda tá faltando coisa,  que é uma das mais importantes no código que eu corrigi... pense, no que está faltando... rsrsrs  é algo que já deixei no código como dica, e que eu já expliquei em outro post..  algo essencial.

 

PS: além disso,  não coloque espaços no nome do banco de dados... e nem em variáveis.  Por isso troque o  imperio verde , por  imperioVerde  ou imperio_verde... dê preferência por nomes juntos como  imperioVerde

Link para o comentário
Compartilhar em outros sites

@DiF tô achando o que falta não, to vendo que tem um erro de digitação no código e a quebra de linha...😅seria a quebra de linha ou a conexão do banco de dados?

@DiF if ($cadastra)insert into $_post{

echo "New record created successfully";



} else {



  echo "Error: " . $sql . "<br>" . $conexao->error;



}



$conexao->close();

 

Link para o comentário
Compartilhar em outros sites

@DiF Bom.. se ambos são diferentes, eu espero você postar aqui em formato de texto, com o botão CODE <> a versão do código que você está usando atualmente. 

 

Mas o que eu posso te dizer por agora, é que o method no formulário, deve ser POST, e no arquivo php você precisa receber estes dados usando o $_POST["nome do campo"]

 

exemplo:

 

<input type="text" name="nome" />

 

no php

 

$nome = $_POST["nome"];

 

E por aí vai...

 

Sinceramente não sei o que está faltando...🙄

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Carlos FW Informatica Poxa... rsrsr eu pedi para você reler que eu escrevi...  porém você apenas colou o que eu escrevi..  rsrsrs   enfim.. a ultima dica...  e é praticamente "desenhado"

 

O que o arquivo php precisa para processar as informações vindas do formulário? Sem elas, fica praticamente em branco. Todos os dados são armazenados em variáveis.

O que falta, também está no meu post #13, no próprio código, porém ele precisa constar antes da inserção dos dados com a função mysqli_query, e também está no seu próprio post  #16!

 

Desculpe, mas vou até aqui só. o intuito é você entender onde está o erro, o que está faltando...  não tem sentido eu postar o código completo  rsrs 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@DiF 

<?php



$dbhost="localhost";

$dbusername="root";

$dbpassword="";

$dbname="imperioVerde";



$conexao = new mysqli ($dbhost,$dbusername,$dbpassword,$dbname);



$nome = $_POST["nome"];



$sql = "insert into imperioVerde('nome','tel','endereco','produto','quantidade') VALUES ('$nome', '$tel', '$endereco', '$produto', $quantidade);";



$cadastra = mysqli_query($conexao, $sql);



if ($cadastra) {



  echo "New record created successfully";



} else {



  echo "Error: " . $sql . "<br>" . $conexao->error;



$conexao->close();



?>

@DiF seria mais ou menos assim?

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Carlos FW Informatica Mais ou menos isso, está falando as variáveis com o POST ainda.   você colocou apenas o do nome. 

Além disso, verifique se o valor de quantidade é uma string ou se é número....  se for string, você coloca o $quantidade entre aspas,   se for numérico, coloca sem aspas.

No caso,  Para um dado ser string no banco de dados, o campo deve ser do tipo VARCHAR....    para numérico, o campo precisa ser INT, Double ou Float.  No caso de quantidades, sempre deve ser INT.  

Porque, naturalmente você vai querer fazer operações matemáticas como somar a quantidade e etc... se ele for uma string, teria que converter para inteiro e depois fazer operações matemáticas.. então deixando em INT é mais fácil.

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Carlos FW Informatica Então.. eu mencionei cálculos matemáticos, pois quando se trata de quantidades, é melhor tratar isso diretamente no banco de dados.  e já trazer um retorno... por exemplo:

Vamos supor que você tenha uma tabela de vendas.  Você pode contabilizar a quantidade produtos de um cliente assim:

 

ID   produto    quantidade    cliente
1    produtoA       3            2
2    produtoB       2            2 
3    produtoC       5            2

 

SELECT SUM(quantidade) AS totalItens  FROM vendas WHERE cliente = 2

 

Ou poderia fazer uma soma de valores monetários da tabela caso tenha um preço unitário..

 

Enfim, essa é a importancia de sempre usar valores numéricos no banco de dados como INT, Double ou Float.   Deixar o Varchar só para textos, como nomes, endereços, telefones

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Carlos FW Informatica Por gentileza, sempre poste os códigos em texto com o botão code.   use as imagens só como auxílio.

 

Enfim, acredito que o erro da primeira foto, é devido aos diretórios conter espaços.  NUNCA use espaços no nome de diretorios ou arquivos. Além disso, evite de instalar o easyPHP nos arquivos de programas,  porque esta é uma área  protegida,  então pode ser que seja problemas de permissão...  dê preferência para instalar o programa em outro lugar,  eu geramente uso uma partição separada do C, para instalar programas.

 

Na seguinda foto,  vejo que você definiu o campo do telefone como INT,   não é ideal,  melhor deixar o telefone como varchar.

Além disso,  sua tabela não possui um campo ID, que seja auto increment. É imprescindível que você crie um campo ID, onde seja auto incrementável.. pois toda vez que você faz um registro, ele vai incrementar em 1..  para identificação depois.

 

Na terceira foto,  na instrução SQL, você está passando as variáveis $tel  e $quantidade  como strings, e não como valores numéricos... 

Lembra que eu te falei ali no post #21?     Quando for string, deixa entre aspas, quando for  numérico, deixa sem aspas.... então:

 

$sql = "insert into imperioVerde('nome','tel','endereco','produto','quantidade') 
                  VALUES ('$nome', $tel, '$endereco', '$produto', $quantidade);

 

repare que o $tel  e $quantidade não possuem aspas, pois eles são valores numéricos. 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!