Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ajuda para um iniciante


samoel

Pergunta

Bom dia pessoal, estou estudando php e estou acompanhando uma video aula. estou fazendo o exercicio de gravar dados no banco de dados mysql. Estou usando o dreanweaver para estudar php.

fiz o exercicio proposto pelo professor, sendo que quando mando gravar só grava o campo id que e auto incremento e o nome, os campos email , cidade, mensagem não esta gravando. Abaixo segue o codigo que fiz para voces me ajudarem no que estou errando.

**************************************************************************

CODIGO DO MEU FORMULÁRIO

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

<body>

<form id="form1" name="form1" method="post" action="funcoes.php?funcao=gravar">

<table width="329" border="0">

<tr>

<td width="60">Nome</td>

<td width="247"><label>

<input name="nome" type="text" id="nome" size="40" />

</label></td>

</tr>

<tr>

<td>Email</td>

<td><input name="Email" type="text" id="Email" size="40" /></td>

</tr>

<tr>

<td>Cidade</td>

<td><input name="Cidade" type="text" id="Cidade" size="40" /></td>

</tr>

<tr>

<td>Mensagem</td>

<td><label>

<textarea name="Mensagem" id="Mensagem" cols="45" rows="5"></textarea>

</label></td>

</tr>

<tr>

<td> </td>

<td><input type="submit" name="button" id="button" value="Cadastrar" /></td>

</tr>

</table>

</form>

</body>

</html>

*************************************************************************

CONEXÃO.PHP

<?php

$db = mysql_connect("localhost","root","");

$dados = mysql_select_db("curso_db",$db);

?>

**************************************************************************

CODIGO FUNCOES.PHP

<?php

include "conexao.php";

$grava_nome = $_POST['nome'];

$grava_email = $_POST['email'];

$grava_cidade = $_POST['cidade'];

$grava_mensagem= $_POST['mensagem'];

if ($_GET['funcao'] == "gravar"){

$sql_gravar = mysql_query("INSERT INTO curso_tb(nome, email) value ('$grava_nome','$grava_email')");

header('location:form.php');

}

?>

Eu não consegui ver erro, como não tenho conhecimento, estou aprendendo, não tenho ideia o que possa ser.Desde já valeu pessoal pela ajuda.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Hi.

Se o erro for apenas de gravação no banco e estiver redirecionando para form.php normalmente, utilize a função mysql_error() para verificar os possíveis erros. Portanto:

$sql_gravar = mysql_query("INSERT INTO curso_tb(nome, email) value ('$grava_nome','$grava_email')") or die(mysql_error());

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0
Hi.

Se o erro for apenas de gravação no banco e estiver redirecionando para form.php normalmente, utilize a função mysql_error() para verificar os possíveis erros. Portanto:

$sql_gravar = mysql_query("INSERT INTO curso_tb(nome, email) value ('$grava_nome','$grava_email')") or die(mysql_error());

[]'s

O problema não está na query, pois segundo ele está sendo salvo o id que é autoincrement e os outros campos estão indo em branco.

Uma coisa que percebi é que em alguns campos, está sendo usado o nome com a primeira letra em maiúsculo (exemplo):

<input name=Email" type="text" id="Email" size="40" />

E na hora de resgatar:

$grava_email = $_POST['email];

Veja que $_POST['email'] é diferente de $_POST['Email']

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Fvox, te agradeço pela ajuda.

Seguinte : como disse em cima ele grava no banco de dados o campo Id e o campo nome, os outros campos não estão gravando.

Fiz o que voce me orientou e não retornou nenhum erro, e gravou somente o campo Id e o campo nome.

teria mais alguma ideia ?

Link para o comentário
Compartilhar em outros sites

  • 0

ESerra na mosca.

O problema foi esse mesmo quando eu criei o formulário eu escrevi os campos com a primeira letra em maiúsculo e na hora da usar o $_post eu tratava com letra minúsculo.

coloquei tudo em minúsculo aí então funcionou, esta gravando todos os campos.

Muito obrigado ESerra e Fvox pela ajuda, sei que é um erro simples D+, mas como disse estou estudando php, não tenho experiência. pra mim esse erro já me fez aprender muita coisa.

Link para o comentário
Compartilhar em outros sites

  • 0

estou encontrando outra falha nesse codigo:

quando gravo na tabela ele me retorna um erro na pagina

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\aulas\funcoes.php:2) in C:\xampp\htdocs\aulas\funcoes.php on line 14

mas mesmo retornando esse erro ele esta gravando na tabela. Dei uma procurada na net, li varias soluções algumas não funcionaram e outras não sei fazer ainda. Outra dificuldade que estou encontrando : Se a palavra tem algum acente ele grava com caracter stranho, já fiz varias modificações como por exemplo mudar de charset=utf-8 para iso, já refiz o banco de dados no padrão utf-8 mas nenhuma adiantou. fico aguardando a ajuda dos amigos.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...