turboboy 0 Denunciar post Postado Maio 28, 2013 olá sou novo no forum e tambem novo em php, estou desenvolvendo um sistema de cadastro de pizza para um trabalho pessoal, e estou com um problema na parte de Editar as tabelas do meu banco,Segue meu BD -- -- Estrutura da tabela `pizza` -- CREATE TABLE IF NOT EXISTS `pizza` ( `id` int(11) NOT NULL AUTO_INCREMENT, `pizza` varchar(255) NOT NULL, `valor` varchar(255) NOT NULL, `ingredientes` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; Segue abaixo o meu Editar.php <?php include_once 'restrito.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>Editar Notícia</title> </head> <body> <h1>Editar</h1> <?php include("conexao.php"); $id = $_GET["id"]; $sql = "SELECT * FROM pizza WHERE id = '$id'"; $rs = mysql_query($sql, $conexao); $dados = mysql_fetch_array($rs); ?> <form id="form1" name="form1" method="post" action="upd.php"> <p>Título: <input type="textarea " name="sabor" id="sabor" value="<?php echo $dados["sabor"]; ?>" /></p> <p>Subtítulo: <input type="textarea" name="valor" id="valor" value="<?php echo $dados["valor"]; ?>" /></p> <p>Notícia: <textarea name="ingredientes" id="ingredientes" cols="45" rows="5" value="" ><?php echo $dados["ingredientes"]; ?></textarea></p> <p><input type="submit" name="button" id="button" value="Cadastrar" /></p> </form> </body> </html> O upd.php <?php include("conexao.php"); $sabor = $_POST["sabor"]; $valor = $_POST["valor"]; $ingredientes = $_POST["ingredientes"]; $id = $_POST["id"]; $alterar = "UPDATE pizza SET titulo ='$titulo', valor ='$valor', ingredientes ='$ingredientes' where id=$id "; mysql_query($alterar) or die ("erro ao alterar"); header("Location: editar.php"); ?> se possivel me oriente no meu erro, pois estou a 2 dias quebrando a cabeça e não consigo.... Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Xavier 189 Denunciar post Postado Maio 28, 2013 Ok mas detalhe o seu problema Compartilhar este post Link para o post Compartilhar em outros sites
turboboy 0 Denunciar post Postado Maio 28, 2013 bom, clico em Cadastra os dados das tabelas e o que me volta são esses dois erros...( ! ) Notice: Undefined index: id in C:\Program Files\VertrigoServ\www\jamil\upd.php on line 7( ! ) Notice: Undefined variable: titulo in C:\Program Files\VertrigoServ\www\jamil\upd.php on line 11 arrumei os erros do upd.phpficou assim: <?php include("conexao.php"); $id = $_GET["id"]; $sabor = $_POST["sabor"]; $valor = $_POST["valor"]; $ingredientes = $_POST["ingredientes"]; $sql = "UPDATE pizza SET sabor='$sabor' , valor='$valor' , ingredientes='$ingredientes' , id='$id'"; $rs = mysql_query($sql, $conexao); header("Location: editar.php") ?> só que agora o erro está ( ! ) Notice: Undefined index: id in C:\Program Files\VertrigoServ\www\jamil\editar.php on line 16 Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Xavier 189 Denunciar post Postado Maio 28, 2013 (!) Notice: Undefined index: id in C:\Program Files\VertrigoServ\www\jamil\upd.php on line 7 id está indefinido. Solução. No arquivo restrito.php , crie um input type="hidden" e faça conforme abaixo <input type="hidden" name="id" value="<?php echo $id; ?>" /> ( ! ) Notice: Undefined variable: titulo in C:\Program Files\VertrigoServ\www\jamil\upd.php on line 11 Não existe a variável $titulo e sim $sabor. Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Maio 28, 2013 header("Location: editar.php"); Compartilhar este post Link para o post Compartilhar em outros sites
turboboy 0 Denunciar post Postado Maio 28, 2013 meu erro está na linha 16 do editar.php $id = $_GET["id"]; o que seria ? Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Xavier 189 Denunciar post Postado Maio 28, 2013 Só edite o post se for realmente necessário. Uma nova resposta, um novo post. Fica mais fácil te ajudarem. meu erro está na linha 16 do editar.php $id = $_GET["id"]; o que seria ? Undefined index: Significa que não existe o dito index(no caso $GET["id"]); Você precisa passar via get(no seu caso) header (location: editar.php?id=$id); Tentae Compartilhar este post Link para o post Compartilhar em outros sites
turboboy 0 Denunciar post Postado Maio 28, 2013 coloquei assim <?php include_once 'restrito.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>Editar Notícia</title> </head> <body> <h1>Editar/h1> <?php include("conexao.php"); $id = $_GET["id"]; header ('location: editar.php?id=$id'); $sql = "SELECT * FROM pizza WHERE id = '$id'"; $rs = mysql_query($sql, $conexao); $dados = mysql_fetch_array($rs); ?> <form id="form1" name="form1" method="post" action="upd.php"> <p>Título: <input type="textarea " name="sabor" id="sabor" value="<?php echo $dados["sabor"]; ?>" /></p> <p>Subtítulo: <input type="textarea" name="valor" id="valor" value="<?php echo $dados["valor"]; ?>" /></p> <p>Notícia: <textarea name="ingredientes" id="ingredientes" cols="45" rows="5" value="" ><?php echo $dados["ingredientes"]; ?></textarea></p> <p><input type="submit" name="button" id="button" value="Cadastrar" /></p> </form> </body> </html> .....mais a pagina só fica carregandona URL da pagina "http:// localhost:70/jamil/editar.php?id=$id" Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Xavier 189 Denunciar post Postado Maio 28, 2013 Não é no arquivo restrito.php e sim no upd.php. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 28, 2013 O correto é você passar o id do tipo hidden no formulario e resgatar via post <?php include_once 'restrito.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>Editar Notícia</title> </head> <body> <h1>Editar</h1> <?php include("conexao.php"); $id = isset( $_GET["id"] ) ? is_numeric( $_GET["id"] ) : null; $sql = "SELECT * FROM pizza WHERE id = '$id'"; $rs = mysql_query($sql, $conexao); $dados = mysql_fetch_array($rs); ?> <form id="form1" name="form1" method="post" action="upd.php"> <p>Título: <input type="textarea " name="sabor" id="sabor" value="<?php echo $dados["sabor"]; ?>" /></p> <p>Subtítulo: <input type="textarea" name="valor" id="valor" value="<?php echo $dados["valor"]; ?>" /></p> <p>Notícia: <textarea name="ingredientes" id="ingredientes" cols="45" rows="5" value="" ><?php echo $dados["ingredientes"]; ?></textarea></p> <p> <!-- Mudança aqui --> <input type="hidden" name="id" value="<?php echo $dados["id"]; ?>"/> <!-- Mudança aqui --> <input type="submit" name="button" id="button" value="Cadastrar" /></p> </form> </body> </html> upd.php <?php include("conexao.php"); //Procure sobre anti sql injection e validações $id = isset( $_POST["id"] ) ? is_numeric( $_POST["id"] ) : null; $sabor = isset( $_POST["sabor"] ) ? !empty( $_POST["sabor"] ) : null; $valor = $_POST["valor"]; $ingredientes = $_POST["ingredientes"]; $sql = "UPDATE pizza SET sabor='$sabor' , valor='$valor' , ingredientes='$ingredientes' , id='$id'"; $rs = mysql_query($sql, $conexao) or die ("Error: " .mysql_error()); header("Location: editar.php") ?> Compartilhar este post Link para o post Compartilhar em outros sites
turboboy 0 Denunciar post Postado Maio 28, 2013 O correto é você passar o id do tipo hidden no formulario e resgatar via post <?php include_once 'restrito.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>Editar Notícia</title> </head> <body> <h1>Editar</h1> <?php include("conexao.php"); $id = isset( $_GET["id"] ) ? is_numeric( $_GET["id"] ) : null; $sql = "SELECT * FROM pizza WHERE id = '$id'"; $rs = mysql_query($sql, $conexao); $dados = mysql_fetch_array($rs); ?> <form id="form1" name="form1" method="post" action="upd.php"> <p>Título: <input type="textarea " name="sabor" id="sabor" value="<?php echo $dados["sabor"]; ?>" /></p> <p>Subtítulo: <input type="textarea" name="valor" id="valor" value="<?php echo $dados["valor"]; ?>" /></p> <p>Notícia: <textarea name="ingredientes" id="ingredientes" cols="45" rows="5" value="" ><?php echo $dados["ingredientes"]; ?></textarea></p> <p> <!-- Mudança aqui --> <input type="hidden" name="id" value="<?php echo $dados["id"]; ?>"/> <!-- Mudança aqui --> <input type="submit" name="button" id="button" value="Cadastrar" /></p> </form> </body> </html> upd.php <?php include("conexao.php"); //Procure sobre anti sql injection e validações $id = isset( $_POST["id"] ) ? is_numeric( $_POST["id"] ) : null; $sabor = isset( $_POST["sabor"] ) ? !empty( $_POST["sabor"] ) : null; $valor = $_POST["valor"]; $ingredientes = $_POST["ingredientes"]; $sql = "UPDATE pizza SET sabor='$sabor' , valor='$valor' , ingredientes='$ingredientes' , id='$id'"; $rs = mysql_query($sql, $conexao) or die ("Error: " .mysql_error()); header("Location: editar.php") ?> Error: Duplicate entry '0' for key 'PRIMARY' Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Maio 28, 2013 poe where nesse update se não a tabela toda vai ser altera com esses valores. $sql = "UPDATE pizza SET sabor='$sabor' , valor='$valor' , ingredientes='$ingredientes' , id='$id'"; Compartilhar este post Link para o post Compartilhar em outros sites
turboboy 0 Denunciar post Postado Maio 28, 2013 ainda não esta funcionado ;/ Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Maio 29, 2013 como vc fez? Compartilhar este post Link para o post Compartilhar em outros sites
fmmh18 0 Denunciar post Postado Junho 7, 2013 turboboy no arquivo editar.php colocar um campo no seu formulario <?php include_once 'restrito.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>Editar Notícia</title> </head> <body> <h1>Editar</h1> <?php include("conexao.php"); $id = $_GET["id"]; $sql = "SELECT * FROM pizza WHERE id = '$id'"; $rs = mysql_query($sql, $conexao); $dados = mysql_fetch_array($rs); ?> <form id="form1" name="form1" method="post" action="upd.php"> <input type="hidden" name="id" value="<? echo $dados['id'];?>"/> <p>Título: <input type="textarea " name="sabor" id="sabor" value="<?php echo $dados["sabor"]; ?>" /></p> <p>Subtítulo: <input type="textarea" name="valor" id="valor" value="<?php echo $dados["valor"]; ?>" /></p> <p>Notícia: <textarea name="ingredientes" id="ingredientes" cols="45" rows="5" value="" ><?php echo $dados["ingredientes"]; ?></textarea></p> <p><input type="submit" name="button" id="button" value="Cadastrar" /></p> </form> </body> </html> no upd.php $sql = "UPDATE pizza SET sabor='$sabor' , valor='$valor' , ingredientes='$ingredientes' WHERE id='$id'"; Compartilhar este post Link para o post Compartilhar em outros sites