kelsoueu 0 Denunciar post Postado Fevereiro 6, 2007 Estou com um probleminha no meu banco de dados. É o seguinte: Fiz um banco de dados e montei uma tabela sem o checkbox lá no phpMyAdmin. Tudo funcionou perfeitamente! O problema é justamente quando quero inserir o checkbox. Lá na tabela, defini o campo 'news', referente ao meu checkbox, como tinyint, pq parece ser o tipo de variável mais recomendado para o caso. No meu arquivo .php, insiro o seguinte código:<?if (getenv("REQUEST_METHOD") == "POST") { $nome = $_POST['nome']; $ddd = $_POST['ddd']; $fone = $_POST['fone']; $email = $_POST['email']; $empresa = $_POST['empresa']; $estado = $_POST['estado']; $curso = $_POST['curso']; $news = (isset($_POST['news']) ? 1 : 0); if ($nome and $ddd and $fone and $email and $empresa) { $conexao = mysql_pconnect("localhost","root","senha"); mysql_select_db("rawtech_tabela",$conexao); $query = "INSERT INTO pagina VALUES('00000','$nome','$ddd','$fone','$email','$empresa','$estado','$curso','$news', NOW())"; mysql_query($query,$conexao); header("Location: sucesso.htm"); } else { header("Location: erro.htm"); }}Sem o "news", tudo roda perfeitamente! Onde está o meu erro?Muito obrigada,Kel Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 7, 2007 Olá, Kel. Primeiramente, bem-vinda ao iMasteres. :) Tente retirar as apas de $news na SQL, pois o campo, como você disse, é tinyint, ou seja, deve receber um valor inteiro. []'s Compartilhar este post Link para o post Compartilhar em outros sites
kelsoueu 0 Denunciar post Postado Fevereiro 8, 2007 Obrigada pela recepção, Beraldo.Bom.. tentei tirar as aspas, além de outras "estripulias", mas tudo foi em vão. Penso agora se o erro não está lá no código html do checkbox. Atualmente ele está assim:<input name="news" type="checkbox" id="news" value="1" checked>Será? Obrigada,Kel Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 8, 2007 Quando voce coloca o $news, nada é inserido ou exceto $news é inserido? Tente trocar mysql_query($query,$conexao);por mysql_query($query,$conexao) or die (mysql_error()); Veja se aparece algum erro. []'s Compartilhar este post Link para o post Compartilhar em outros sites
kelsoueu 0 Denunciar post Postado Fevereiro 9, 2007 Apareceu um erro sim.. e surpreendente (na minha opinião). O erro foi:Duplicate entry '00000' for key 1O que isso significa exatamente? :huh: Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 10, 2007 Isso acontece quando você insere um registro duplicado em um campo único (Unique Key) ou com chave primária (Primary Key). Sendo assim, troque "000" por NULL, ficando: Insert Into tabela Values (NULL, demais campos); Isso fará com que o MySQl gere o id automaticamente. []'s Compartilhar este post Link para o post Compartilhar em outros sites
kelsoueu 0 Denunciar post Postado Fevereiro 11, 2007 Poxa, Beraldo! Meu problema estava aí mesmo, e eu colocando a culpa no checkbox. Muito boa essa opção de mostrar a mensagem de erro! Obrigada pela atenção, Kel http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 13, 2007 Só complementando, é ideal retirar o or die (mysql_error()) spós a conclusão do sistema, para que, caso haja algum futuro erro ocasional, o visitante não veja a mensagem de erro. Além de mysql_error(), existe a função mysql_errno(). Com ela você pode comparar os códigos de erros MySQL a fim de montar um tratamento de erros. ;) Daqui uns dias acredito que o Fabyo publicará um tutorial sobre tratamentos de erros, que estava sendo elaborado entre os moderadores de PHP. []'s Compartilhar este post Link para o post Compartilhar em outros sites