Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

NetBoy16

[Resolvido] Não está inserindo

Recommended Posts

Olá a todos e bom dia, semana passada tinha pedido sugestões doque iria desenvolver pois iria começar a parte prática dos meus estudos, então resolvi primeiro fazer uma coisa básica só pra excercitar as operações básicas(inserção, exclusão, alteração e busca) e depois fazer oque me sugerissem, beleza, fiquei um dia trabalhando nisso, uma tarde pra dizer a verdade, dai o resto da semana estive ausente, dai hoje voltei com força total e vou estar me dedicando aos estudos/prática, a página que faz inserção terminei agora, fui testar e aparentemente está tudo ok, não deu nenhum warning ou error, mas fui verificar no phpmyadmin se o registro está lá e tchanran, tabela vazia ! <_< , não sei oque está acontecendo, analisei o código e aparentemente está tudo ok, vou passar o código e gostaria que alguém me ajudasse fazendo o favor, obrigado desde já.

 

<?php
$nome = $_POST["nome"];
$endereco = $_POST["endereco"];
$sexo = $_POST["sexo"];
$obs = $_POST["obs"];

mysql_connect("localhost", "root", "");
mysql_select_db("dbSimples");
mysql_query("INSERT INTO cadastro VALUES ('$nome', $endereco', '$sexo', '$obs')");
mysql_close();

echo "Pessoa cadastrada com sucesso ! <br />";
?>
<a href="Cadastro.html">Voltar</a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu alterei o codigo colocando isso, mas ele continua dando ok, não mostrou nenhuma mensagem de erro, oque será que acontece ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

faltou uma aspa ali antes do endereco.

 

 

mysql_query("INSERT INTO cadastro VALUES ('$nome', '$endereco', '$sexo', '$obs')")or die( mysql_error() );

 

e habilite as mensagens de erro:

http://forum.imasters.com.br/topic/375800-orientacoes-para-uma-boa-participacao/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw, eu arrumei isso mas o codigo continua não inserindo :mellow: , ele está assim agora:

 

<?php
@ini_set('display_errors', '1');
error_reporting(E_ALL);

$nome = $_POST["nome"];
$endereco = $_POST["endereco"];
$sexo = $_POST["sexo"];
$obs = $_POST["obs"];

mysql_connect("localhost", "root", "");
mysql_select_db("dbSimples");
mysql_query("INSERT INTO cadastro VALUES ('$nome', '$endereco', '$sexo', '$obs')") or die(mysql_error());
mysql_close();

echo "Pessoa cadastrada com sucesso ! <br />";
?>
<a href="Cadastro.html">Voltar</a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Debuga o seu SQL, por exemplo:

 

$sql = "INSERT INTO cadastro VALUES ('$nome', '$endereco', '$sexo', '$obs')" or die(mysql_error());
print_r(mysql_query($sql));

#ou 

print_r($sql);

 

Eu "costumo" fazer assim:

 

<?php

ini_set('display_errors', '1');
error_reporting(E_ALL);

mysql_connect("localhost", "root", "");
mysql_select_db("dbSimples");
mysql_query("INSERT INTO cadastro VALUES ('{$_POST['nome']}', '{$_POST['endereco']}', '{$_POST['sexo']}', '{$_POST['obs']}')") or die(mysql_error());
mysql_close();

echo "Pessoa cadastrada com sucesso ! <br />";

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal esse seu jeito, dá pra economizar algumas linhas de codigo :P

Vou debugar aqui

 

edit:ele não mostra nada, só a mensagem de sucesso e o link pra voltar.

vou tentar fazer do jeito que você mostrou ali e dai edito novamente

 

EDIT:Continua a mesma coisa, vou colocar o codiog da pagina html tb:

 

<!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>Painel de Controle</title>
<link href="Estilo.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="corpo">
<div id="topo"><img src="Img/Logo.jpg" width="600" height="100" /></div>
 <div id="menu"><a href="#">Home</a> | <a href="#">Cadastrar</a> | <a href="#">Listar</a> | <a href="#">Alterar</a> | <a href="#">Excluir</a></div>
   <div id="centro">
     <p style="font-weight:bold">CADASTRO:</p>
     <form id="form1" name="form1" method="post" action="cadastrar.php">
       <p>
         <label for="nome">Nome:</label>
         <input name="nome" type="text" id="nome" size="50" />
       </p>
       <p>
         <label for="endereco">Endereço:</label>
         <input name="endereco" type="text" id="endereco" size="50" />
       </p>
       <p>Sexo: 
         <input type="radio" name="sexo" id="sexo" value="F" />
         <label for="sex"></label>
         Feminino 
         <input name="sexo" type="radio" id="sexo" value="M" checked="checked" />
         <label for="sex"></label>
       Masculino</p>
       <p>
         <label for="obs">Observações:</label>
         <br />
         <textarea name="obs" id="obs" cols="50" rows="5"></textarea>
       </p>
       <p>
         <input type="submit" name="envia" id="envia" value="Enviar" />
          
         <input type="reset" name="limpa" id="limpa" value="Limpar" />
       </p>
     </form>
   </div>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra debugar, não chama o HTML na sua URL, chama direto o arquivo.php, que no caso tem o seu SQL.

E retira o código pra redirecionar o cara pra outra página, por que se não tu nunca vai conseguir debugar legal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmmm, tirei o echo e aquela parte html ficando assim:

 

<?php
@ini_set('display_errors', '1');
error_reporting(E_ALL);

mysql_connect("localhost", "root", "");
mysql_select_db("dbSimples");
$sql = mysql_query("INSERT INTO cadastro VALUES ('{$_POST['nome']}', '{$_POST['endereco']}', '{$_POST['sexo']}', '{$_POST['obs']}')") or die(mysql_error());
print_r($sql);
mysql_close();
?>

 

Dai executei o arquivo php e apareceu isso aqui:

Notice: Undefined index: nome in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\Exemplos\Painel de Controle\cadastrar.php on line 4

 

Notice: Undefined index: endereco in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\Exemplos\Painel de Controle\cadastrar.php on line 5

 

Notice: Undefined index: sexo in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\Exemplos\Painel de Controle\cadastrar.php on line 6

 

Notice: Undefined index: obs in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\Exemplos\Painel de Controle\cadastrar.php on line 7

Pessoa cadastrada com sucesso !

Voltar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro, você colocou no seu SQL os dados recebidos pelo $_POST (o formulário). Troque eles por qualquer nome, e vê o que te retorna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você só deve inserir no banco, depois q o cara enviar o form, então verifique isso:

 

<?php

ini_set('display_errors', '1');
error_reporting(E_ALL);

if( $_SERVER['REQUEST_METHOD']=='POST' )
{
   mysql_connect("localhost", "root", "");
   mysql_select_db("dbSimples");
   mysql_query("INSERT INTO cadastro VALUES ('{$_POST['nome']}', '{$_POST['endereco']}', '{$_POST['sexo']}', '{$_POST['obs']}')") or die(mysql_error());
   mysql_close();

   echo "Pessoa cadastrada com sucesso ! <br />";
}
?>

esse IF vai esperar o form ser enviado para executar a rotina dentro dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu codigo ficou assim:

<?php
@ini_set('display_errors', '1');
error_reporting(E_ALL);

$nome = $_POST["nome"];
$endereco = $_POST["endereco"];
$sexo = $_POST["sexo"];
$obs = $_POST["obs"];

if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
mysql_connect("localhost", "root", "");
mysql_select_db("dbSimples");
$sql = mysql_query("INSERT INTO cadastro VALUES ('$nome', '$endereco', '$sexo', '$obs')") or die(mysql_error());
print_r($sql);
mysql_close();

   echo "Pessoa cadastrada com sucesso ! <br />";
}
?>
<a href="Cadastro.html">Voltar</a>

 

Mas continua dando aquele erro '-'

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
@ini_set('display_errors', '1');
error_reporting(E_ALL);

if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{

       $nome = $_POST["nome"];
       $endereco = $_POST["endereco"];
       $sexo = $_POST["sexo"];
       $obs = $_POST["obs"];


       mysql_connect("localhost", "root", "");
       mysql_select_db("dbSimples");
       $sql = mysql_query("INSERT INTO cadastro VALUES ('$nome', '$endereco', '$sexo', '$obs')") or die(mysql_error());
       print_r($sql);
       mysql_close();

   echo "Pessoa cadastrada com sucesso ! <br />";
}
?>

você tinha q colocar a criação das variaveis dentro do IF tb.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, o codigo ficou assim:

 

<?php
@ini_set('display_errors', '1');
error_reporting(E_ALL);


if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{	
$nome = $_POST["nome"];
$endereco = $_POST["endereco"];
$sexo = $_POST["sexo"];
$obs = $_POST["obs"];

mysql_connect("localhost", "root", "");
mysql_select_db("dbSimples");
$sql = mysql_query("INSERT INTO cadastro VALUES ('$nome', '$endereco', '$sexo', '$obs')") or die(mysql_error());
print_r($sql);
mysql_close();

   echo "Pessoa cadastrada com sucesso ! <br />";
}
?>
<a href="Cadastro.html">Voltar</a>

 

Mas continuuua dando o mesmo erro :o

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você debugou? O que ele te retornou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai foi mal, disfarça, acontece que eu baixei a nova versão do easyphp dai ao invés dele substituir o antigo ele cria uma nova pasta, dai eu tava na verdade executando o site que ta no atual e esse que tava fazendo as alterações ta no antigo, ou seja, eu não estava executando essas alterações, mas sim a página do jeito que tava antes, mas agora executei oque é certo e deu tudo certo.

Isso porque eu não cheguei a excluir a pasta do easyphp antigo, só passei os arquivos pra pasta do easyphp atual, mas no dreamweaver eu estava abrindo o arquivo da pasta do easyphp antigo, por isso que pra que surgisse efeito essas alterações eu teria que estar usando o easyphp antigo, mas agora já alterei, dei um salvar como e salvei a alteração na página que está na pasta do easyphp atual e vou deletar a pasta do easyphp antigo pra que não aconteça mais esse tipo de confusão.

 

Vlw pela ajuda :lol:

 

 

EDIT:Tá agora que arrumei e salvei tudo no lugar certo eu executei e não apareceu nenhuma mensagem de erro, pensei que tava certo, mas fui ver no meu bd e ele ainda não está inserindo :(

 

o codigo ta assim:

<?php
@ini_set('display_errors', '1');
error_reporting(E_ALL);

if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{	
$nome = $_POST["nome"];
$endereco = $_POST["endereco"];
$sexo = $_POST["sexo"];
$obs = $_POST["obs"];

mysql_connect("localhost", "root", "");
mysql_select_db("dbSimples");
$sql = mysql_query("INSERT INTO cadastro VALUES ('$nome', '$endereco', '$sexo', '$obs')") or die(mysql_error());
print_r($sql);
mysql_close();
}
?>

 

Pq será que n ta dando certo :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente Assim deve funcionar

<?php
mysql_connect("127.0.0.1", "root", "");
mysql_select_db("dbSimples") or die (mysql_error());

if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
$nome = $_POST["nome"];
$endereco = $_POST["endereco"];
$sexo = $_POST["sexo"];
$obs = $_POST["obs"];

$sql = "INSERT INTO cadastro (nome, endereco, sexo, obs) VALUES ('$nome', '$endereco', '$sexo', '$obs')";
$sql = mysql_query($sql) or die (mysql_error());
echo "Sucesso";
}
?>

Eu uso o EasyPHP o servidor do Easy não é denominado localhost e sim 127.0.0.1

E pelo que sei você não fez o tratamento correto na parte do INSERT.

 

seu

INSERT INTO cadastro VALUES ('$nome', '$endereco', '$sexo', '$obs')

meu

INSERT INTO cadastro (nome,endereco,sexo,obs) VALUES ('$nome','$endereco','$sexo','$obs','$cidade')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vini_Aviva

Que estranho cara, quando tenta inserir em todas as colunas da tabela, não precisa passar elas no SQL, ou estou errado?

Já vi gente fazer isso, e inseria normalmente. Fiquei curioso agora o por que funcionou, pois do jeito que ele fez devia funcionar também!

 

Alguma explicação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

se sua tabela tiver mais de quatro campos, especifique em quais campos irá inserir

veja no manual

http://dev.mysql.com/doc/refman/4.1/pt/insert.html

 

testae...

...
$query = "INSERT INTO cadastro VALUES ('$nome', '$endereco', '$sexo', '$obs')";
if (mysql_query($query)){
  if ( mysql_affected_rows() == 1) ){//se alterar uma linha no banco
     echo "Pessoa cadastrada com sucesso ! <br />";
  }
}
else{//se falhar
  echo "Sua query: ",$query;//imprime a sua query
  die(mysql_error());//mostra erro

}
...

 

posta o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.