Jump to content
Fórum Script Brasil
  • 0

[Ajuda] Gravar dados Na tabela!


Rafael-PHP

Question

Primeiramente Bom dia, Boa Tarde, Boa noite. Sou Rafael Novo no forúm, e estou iniciando em PHP.

Estou assistindo umas Video Aulas sobre PHP basico e avançado de Fernando Noronha beck.com. E meu formulario não esta salvando os arquivos digitados na tabela Mysql.

já revi o Codigo, a video aula, e ainda não encontrei o erro! Me desculpem por perguntas idiotas!

Meu form: Form.php

<!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>
<table width="200" border="0">
  <tr>
    <td>Nome:</td>
    <td><form id="form1" name="form1" method="post" action="funcoes.php?funcao=gravar">
      <label>
        <input type="text" name="nome" id="nome" />
        </label>
    </form>
    </td>
  </tr>
  <tr>
    <td>E-mail:</td>
    <td><form id="form2" name="form2" method="post" action="">
      <label>
        <input type="text" name="email" id="email" />
        </label>
    </form>
    </td>
  </tr>
  <tr>
    <td>Cidade:</td>
    <td><form id="form3" name="form3" method="post" action="">
      <label>
        <input type="text" name="cidade" id="cidade" />
        </label>
    </form>
    </td>
  </tr>
  <tr>
    <td>Mensagem:</td>
    <td><form id="form4" name="form4" method="post" action="">
      <label>
        <textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea>
        </label>
    </form>
    </td>
  </tr>
  <tr>
    <td> </td>
    <td><form id="form5" name="form5" method="post" action="">
      <label>
        <input type="submit" name="button" id="button" value="Cadastrar" />
        </label>
    </form>
    </td>
  </tr>
</table>
</body>
</html>
Script para as Funções: funcoes.php
<?

include "conexao.php";
$acao = isset($_GET['funcao']);

if ($acao == "gravar") {
$grava_nome = isset($_POST['nome']);
$grava_email = isset($_POST['email']);
$grava_cidade = isset($_POST['cidade']);
$grava_mensagem = isset($_POST['mensagem']);

$sql_gravar = mysql_query("INSERT INTO  tb_curso (nome, email, cidade, mensagem) value ('$grava_nome', '$grava_email', '$grava_cidade', '$grava_mensagem')");
header:('Location:form.php');
}
?>
Scripts para conexão com o Banco de Dados: conexão.PHP
<?
$host = "localhost";
$usuario = "root";
$senha = "";
$banco = "curso_db";

$con = mysql_connect($host, $usuario, $senha) or die ("Servidor não responde");
$db = mysql_select_db($banco, $con) or die ("Não foi possivel selecionar o Banco de Dados");
?>

Desde já Muito Obrigado!

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

eahe.. beleza??

1 - (importante): troca VALUE por VALUES..

e.. cara, d boa,, nunca tinha visto esse negocio d "form1", "form2"..

verifica isso.. normal é 1 form só,

tipo:

<form id="form1" name="form1" method="post" action="funcoes.php?funcao=gravar">
Nome:<label>&nbsp;
<input type="text" name="nome" id="nome" />
</label>
<br />
E-mail:&nbsp; 
<label>
<input type="text" name="email" id="email" />
<br />
</label>
Cidade:
<label>
<input type="text" name="cidade" id="cidade" />
</label>
<br />
Mensagem:<br />
<label>
<textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea>
</label>
<p>
<input type="submit" name="button" id="button" value="Cadastrar" />
</p>
</form>

falou, fui..

ah, + dicas:

não abra c/ a short tag (<?) melhor usar a completa: <?php

se der alguma msg d erro posta ela aqui..

Edited by Marcelo_2
Link to comment
Share on other sites

  • 0

Vlw cara parece que era o form mesmo. Esta salvando já so que ele não esta voltando para a Pagina form novamente. Pode me ajudar?

<?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  tb_curso (nome, email, cidade, mensagem) value ('$grava_nome', '$grava_email', '$grava_cidade', '$grava_mensagem')");
header:('Location:form.php');
}
?>

Gostaria de Aproveitar o tópico para não criar outro. Qual "Collation" eu coloco para o PHPMyAdmin aceitar o "Ç" ?

Link to comment
Share on other sites

  • 0
não esta voltando para a Pagina form novamente.

onde está

header:('Location:form.php')
tire os primeiros 2 pontos; assim:
header('Location:form.php')

quanto ao "collation".. n uso o myAdmin... mas eu uso Latin-1..

quero dizer.. já configuro isso quando instalo.. bom, tente esses links:

http://www.google.com.br/search?q=tutorial...lient=firefox-a

c n rolar, melhor abrir outro tópico sim, falou? fui..

Link to comment
Share on other sites

  • 0

Consegui Passar dessa aula, Muito Obrigado. Porem avancei para a aula do comando UPDATE e SELECT. Fiz o que tinha na aula talvez mais algumas besteiras e deu erros em duas paginas.

na pagina Form da os seguintes erros:

Notice: Undefined index: funcao in C:\wamp\www\Mysql_PHP\form.php on line 16

Notice: Undefined index: funcao in C:\wamp\www\Mysql_PHP\form.php on line 46

CODIGO DA PAGINA FORM

<!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=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style6 {color: #000000; font-weight: bold; }
-->
</style>
</head>

<body>
<?php 
 include "conexao.php";
if ($_GET['funcao'] != "editar") {
?>
<form id="form1" name="form1" method="post" action="funcoes.php?funcao=gravar">
  <label></label>
<p>Nome:     
  <input name="nome" type="text" id="nome" size="60"  />
</p>
<p>E-mail:    
  <input name="email" type="text" id="email" size="60"  />
</p>
<p>Cidade:
  <input name="cidade" type="text" id="cidade" size="60" />
</p>
<p>Mensagem:</p>

  <p>
    <textarea name="mensagem" id="mensagem" cols="65" rows="5"></textarea>
</p>
  <p>
    <label>
    <input type="submit" name="button" id="button" value="Cadastrar" />
    </label>
</p>
</form>
<?php 
}
?>

<?php 

if ($_GET['funcao'] == "editar") {
$id = $_GET['id'];
$sql_update = mysql_query("SELECT * FROM tb_curso WHERE id = '$id' ");  
while($linha = mysql_fetch_array($sql_update)) {

   $nome = $linha['nome'];
   $email = $linha['email'];
   $cidade = $linha['cidade'];
   $mensagem = $linha['mensagem'];

}
?>
<form id="form1" name="form1" method="post" action="form.php?funcao=editar&id=<?php echo $id  ?>">
  <label></label>
<p>Nome:     
  <input name="nome" type="text" id="nome" size="60" values="<?php echo $nome ?>" />
</p>
<p>E-mail:    
  <input name="email" type="text" id="email" size="60" values="<?php echo $email ?>" />
</p>
<p>Cidade:
  <input name="cidade" type="text" id="cidade" size="60" values="<?php echo $cidade ?>"  />
</p>
<p>Mensagem:</p>

  <p>
    <textarea name="mensagem" id="mensagem" cols="65" rows="5"> <?php echo $mensagem ?> </textarea>
</p>
  <p>
    <label>
    <input type="submit" name="button" id="button" value="Alterar" />
    </label>
</p>
</form>

<?php
}
?>

<table width="632" height="64" border="1">
  <tr>
    <td width="470" bgcolor="#999999"><div align="center" class="style6">Nome</div></td>
    <td width="70" bgcolor="#999999"><div align="center" class="style6">Editar</div></td>
    <td width="70" bgcolor="#999999"><div align="center" class="style6">Remover</div></td>
  </tr>
 <?php

  
 $sql_visualizar = mysql_query("SELECT nome, id FROM tb_curso ORDER BY nome");
 while($linha = mysql_fetch_array($sql_visualizar)){
 $pega_nome = $linha['nome'];
 $id = $linha['id'];

 ?>
  <tr>
    <td><?php echo $pega_nome ?></td>
    <td><div align="center"><a href="form.php?funcao=editar & id=<?php echo $id ?> ">Editar</a></div></td>
    <td><div align="center"><a href="funcoes.php?funcao=remover & id=<?php echo $id ?>">Excluir</a></div></td>
  </tr>
 <?php
 }
 ?>
</table>
<p> </p>
</body>
</html>
ERRO PAGINA FUNÇÕES Notice: Undefined index: nome in C:\wamp\www\Mysql_PHP\funcoes.php on line 6 Notice: Undefined index: email in C:\wamp\www\Mysql_PHP\funcoes.php on line 7 Notice: Undefined index: cidade in C:\wamp\www\Mysql_PHP\funcoes.php on line 8 Notice: Undefined index: mensagem in C:\wamp\www\Mysql_PHP\funcoes.php on line 9 Notice: Undefined index: funcao in C:\wamp\www\Mysql_PHP\funcoes.php on line 12 Notice: Undefined index: funcao in C:\wamp\www\Mysql_PHP\funcoes.php on line 18 CODIGO DA PAGINA FUNCOES
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?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  tb_curso (nome, email, cidade, mensagem) value ('$grava_nome', '$grava_email', '$grava_cidade', '$grava_mensagem')");
header("Location:form.php");
}else

//******************************************************************************************************
if ($_GET['funcao'] == "editar") {
$id = $_GET['id'];
$sql_alterar = mysql_query("UPDATE tb_curso SET nome='$gravar_nome', email='$grava_email', cidade='$grava_cidade', mensagem='$grava_mensagem' WHERE id = '$id' ");
header("Location:form.php");
}

?>

Link to comment
Share on other sites

  • 0

BLEW

Coloquei como voce me disse e pesquisei. O Isset serve para verificar se a Variavel não esta vazia. Mas o que aconteceu foi o seguinte meu form não esta sendo mostrado, olha ai o codigo.

<!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=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style6 {color: #000000; font-weight: bold; }
-->
</style>
</head>

<body>
<?php 
 include "conexao.php";
if(isset($_GET['funcao']) && ($_GET['funcao'] != "editar")) {
?>
<form id="form1" name="form1" method="post" action="funcoes.php?funcao=gravar">
  <label></label>
<p>Nome:     
  <input name="nome" type="text" id="nome" size="60"  />
</p>
<p>E-mail:    
  <input name="email" type="text" id="email" size="60"  />
</p>
<p>Cidade:
  <input name="cidade" type="text" id="cidade" size="60" />
</p>
<p>Mensagem:</p>

  <p>
    <textarea name="mensagem" id="mensagem" cols="65" rows="5"></textarea>
</p>
  <p>
    <label>
    <input type="submit" name="button" id="button" value="Cadastrar" />
    </label>
</p>
</form>
<?php 
}
?>

<?php 

if(isset($_GET['funcao']) && ($_GET['funcao'] == "editar")) {
$id = $_GET['id'];
$sql_update = mysql_query("SELECT * FROM tb_curso WHERE id = '$id' ");  
while($linha = mysql_fetch_array($sql_update)) {

   $nome = $linha['nome'];
   $email = $linha['email'];
   $cidade = $linha['cidade'];
   $mensagem = $linha['mensagem'];

}
?>
<form id="form1" name="form1" method="post" action="form.php?funcao=editar&id=<?php echo $id  ?>">
  <label></label>
<p>Nome:     
  <input name="nome" type="text" id="nome" size="60" values="<?php echo $nome ?>" />
</p>
<p>E-mail:    
  <input name="email" type="text" id="email" size="60" values="<?php echo $email ?>" />
</p>
<p>Cidade:
  <input name="cidade" type="text" id="cidade" size="60" values="<?php echo $cidade ?>"  />
</p>
<p>Mensagem:</p>

  <p>
    <textarea name="mensagem" id="mensagem" cols="65" rows="5"> <?php echo $mensagem ?> </textarea>
</p>
  <p>
    <label>
    <input type="submit" name="button" id="button" value="Alterar" />
    </label>
</p>
</form>

<?php
}
?>

<table width="632" height="64" border="1">
  <tr>
    <td width="470" bgcolor="#999999"><div align="center" class="style6">Nome</div></td>
    <td width="70" bgcolor="#999999"><div align="center" class="style6">Editar</div></td>
    <td width="70" bgcolor="#999999"><div align="center" class="style6">Remover</div></td>
  </tr>
 <?php

  
 $sql_visualizar = mysql_query("SELECT nome, id FROM tb_curso ORDER BY nome");
 while($linha = mysql_fetch_array($sql_visualizar)){
 $pega_nome = $linha['nome'];
 $id = $linha['id'];

 ?>
  <tr>
    <td><?php echo $pega_nome ?></td>
    <td><div align="center"><a href="form.php?funcao=editar & id=<?php echo $id ?> ">Editar</a></div></td>
    <td><div align="center"><a href="funcoes.php?funcao=remover & id=<?php echo $id ?>">Excluir</a></div></td>
  </tr>
 <?php
 }
 ?>
</table>
<p>&nbsp;</p>
</body>
</html>

Link to comment
Share on other sites

  • 0

não porque quando você seta a variavel get, você precisa complementar

assim:

$id = $_REQUEST['id'];
$sql = "select * from sua_tabela where id = $id";
$query = mysql_query($sql);

while ($row = mysql_fetch_array($query) {

ai dps do while você poe seu formulario

no campo "value" de cada caixa de texto, você faz

value = "<?php echo $row['nome']; ?>"

e assim vai

que ele vai resgatar os dados que estão no banco e trazes pro formulario!

*esse exemplo é só para editar

você dividiu seu formulario

faz um if só, o primeiro no caso, e coloca else

ve se vai também

Link to comment
Share on other sites

  • 0

Não sei se você entendeu o que o codigo faz, ou eu não entendi sua resposta. Vou tentar explicar.

Nessa primeira parte:

<!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=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style6 {color: #000000; font-weight: bold; }
-->
</style>
</head>

<body>
<?php 
 include "conexao.php";
if(isset($_GET['funcao']) && ($_GET['funcao'] != "editar")) {
?>
<form id="form1" name="form1" method="post" action="funcoes.php?funcao=gravar">
  <label></label>
<p>Nome:     
  <input name="nome" type="text" id="nome" size="60"  />
</p>
<p>E-mail:    
  <input name="email" type="text" id="email" size="60"  />
</p>
<p>Cidade:
  <input name="cidade" type="text" id="cidade" size="60" />
</p>
<p>Mensagem:</p>

  <p>
    <textarea name="mensagem" id="mensagem" cols="65" rows="5"></textarea>
</p>
  <p>
    <label>
    <input type="submit" name="button" id="button" value="Cadastrar" />
    </label>
</p>
</form>
<?php 
}
?>
Ele vai verificar se o Valor da Variavel função que eu setei e Diferente de Editar, se for então ele vai abrir o primeiro form, que por sua vez ira puxar a Função gravar do Script função que eu criar. já nessa Segunda parte:
<?php 

if(isset($_GET['funcao']) && ($_GET['funcao'] == "editar")) {
$id = $_GET['id'];
$sql_update = mysql_query("SELECT * FROM tb_curso WHERE id = '$id' ");
while($linha = mysql_fetch_array($sql_update)) {

   $nome = $linha['nome'];
   $email = $linha['email'];
   $cidade = $linha['cidade'];
   $mensagem = $linha['mensagem'];

}
?>
<form id="form1" name="form1" method="post" action="form.php?funcao=editar&id=<?php echo $id  ?>">
  <label></label>
<p>Nome:     
  <input name="nome" type="text" id="nome" size="60" values="<?php echo $nome ?>" />
</p>
<p>E-mail:    
  <input name="email" type="text" id="email" size="60" values="<?php echo $email ?>" />
</p>
<p>Cidade:
  <input name="cidade" type="text" id="cidade" size="60" values="<?php echo $cidade ?>"  />
</p>
<p>Mensagem:</p>

  <p>
    <textarea name="mensagem" id="mensagem" cols="65" rows="5"> <?php echo $mensagem ?> </textarea>
</p>
  <p>
    <label>
    <input type="submit" name="button" id="button" value="Alterar" />
    </label>
</p>
</form>

<?php
}
?>

<table width="632" height="64" border="1">
  <tr>
    <td width="470" bgcolor="#999999"><div align="center" class="style6">Nome</div></td>
    <td width="70" bgcolor="#999999"><div align="center" class="style6">Editar</div></td>
    <td width="70" bgcolor="#999999"><div align="center" class="style6">Remover</div></td>
  </tr>
 <?php

  
 $sql_visualizar = mysql_query("SELECT nome, id FROM tb_curso ORDER BY nome");
 while($linha = mysql_fetch_array($sql_visualizar)){
 $pega_nome = $linha['nome'];
 $id = $linha['id'];

 ?>
  <tr>
    <td><?php echo $pega_nome ?></td>
    <td><div align="center"><a href="form.php?funcao=editar & id=<?php echo $id ?> ">Editar</a></div></td>
    <td><div align="center"><a href="funcoes.php?funcao=remover & id=<?php echo $id ?>">Excluir</a></div></td>
  </tr>
 <?php
 }
 ?>
</table>
<p>&nbsp;</p>
</body>
</html>
Ele ira abrir outra função no form mesmo que sera o de puxar os valores da tabela, e quando eu apertar no botão Alterar salvar os dados com a função do Script funções que eu fiz. Acho que o que complicou a voce me ajudar foi não postar o SCRIPT funcoes então ai vai. funcoes.php
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?php
include "conexao.php";


$grava_nome = isset ($_POST['nome']);
$grava_email = isset ($_POST['email']);
$grava_cidade = isset ($_POST['cidade']);
$grava_mensagem = isset ($_POST['mensagem']);

//******************************************************************************************************
if(isset($_GET['funcao']) && ($_GET['funcao'] == "gravar")) {
$sql_gravar = mysql_query("INSERT INTO  tb_curso (nome, email, cidade, mensagem) value ('$grava_nome', '$grava_email', '$grava_cidade', '$grava_mensagem')");
header("Location:form.php");
}else

//******************************************************************************************************
if(isset($_GET['funcao']) && ($_GET['funcao'] == "editar")) {
$id = $_GET['id'];
$sql_alterar = mysql_query("UPDATE tb_curso SET nome='$gravar_nome', email='$grava_email', cidade='$grava_cidade', mensagem='$grava_mensagem' WHERE id = '$id' ");
header("Location:form.php");
}

?>

Ai voce deve me perguntar por que voce criou outro if, não era so colocar o Else?

A resposta e simples, porque vem outro if depois com a função de deletar.

Desculpe por pertubar tanto!

Link to comment
Share on other sites

  • 0

cara, isso não vai funcionar nunca, já que as funções estão no arquivo funções.php e o action do teu form está apontando para form.php?acao=editar...

muda isso ai, que deve funcionar

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...