Bob_Design Postado Fevereiro 11, 2007 Denunciar Share Postado Fevereiro 11, 2007 <?$host="localhost";///Endereço do mysql, na maioria das vezes será localhost.$user="root";///Nome de usuário$pwd="";///Senha$dbname ="bd";$connect = mysql_connect( $host, $user, $pwd );$select = mysql_select_db( $dbname , $connect );echo "<form method='post' action='editar.php'>";echo "Nome:<input name='id' type='text' /><br>";echo "<input type='submit' value='OK'></form>";$id = $_POST["id"];$consulta = mysql_query("SELECT * FROM produtos WHERE id=$id'");while ($dados = mysql_fetch_array($consulta)){$id1 = $dados['id];$nome = $dados['nome'];$preço = $dados['preço'];$qt = $dados['qt'];$desc = $dados['descri'];echo "<form method=post' action='editar.php'>";echo "ID: $id1<br>";echo "Nome:<input name='nome' type='text' value='$nome' /><br />";echo "Preço:<input name='preço' type='text' value='$preço' /><br />";echo "Quantidade:<input name='qt' type='text' value='$qt' /><br />";echo "Descrição:<textarea name='desc' cols='' rows=''>'$desc'</textarea>";echo "<input type='submit' value='OK'></form>";}if($_POST["nome] !=""){$nome1 = $_POST['nome'];$preco1 = $_POST["preço"];$qt1 = $_POST["qt"];$desc1 = $_POST["desc"];$editar = "UPDATE produtos SET nome='$nome1' WHERE id='$id'";$resultado1 = mysql_query($editar);}elseecho "grrrrrrrrrrrrrr";?>quando eu altero apaga o valor do nome no mysql Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 11, 2007 Denunciar Share Postado Fevereiro 11, 2007 Ele tá apagando? Ele não deveria fazer isso, por um grande detalhe, no UPDATE você diz "WHERE id='$id'".. só que não existe $id definida... ela não vem junto do formulário que antecede o UPDATE, você pode fazer um campo do tipo hidden e guardar a id ou colocar ela numa sessão... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bob_Design Postado Fevereiro 12, 2007 Autor Denunciar Share Postado Fevereiro 12, 2007 o $id fica com o valor que do id que a pessoa digitar Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 12, 2007 Denunciar Share Postado Fevereiro 12, 2007 Fica, quando você faz a consulta ao banco, mas depois da consulta você envia a página para ela mesma, e nessa hora o valor do $id se perde porque ele não fica registrado em lugar algum. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bob_Design Postado Fevereiro 12, 2007 Autor Denunciar Share Postado Fevereiro 12, 2007 como faço para guardala? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 12, 2007 Denunciar Share Postado Fevereiro 12, 2007 Na linha abaixo disso:$id1 = $dados['id'];Coloca$_SESSION['id'] = $id1;Na linha:$editar = "UPDATE produtos SET nome=$nome1' WHERE id='$id'";Troca por:$editar = "UPDATE produtos SET nome='$nome1' WHERE id='".$_SESSION['id]."'"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bob_Design Postado Fevereiro 12, 2007 Autor Denunciar Share Postado Fevereiro 12, 2007 Fiz as alterações agora ele não deleta o nome, mais não alteraEle não está executando o if está indo pra o else direto Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 12, 2007 Denunciar Share Postado Fevereiro 12, 2007 Se você fez as alterações conforme eu pedi, o seu código deve ter ficado assim:<?php $host="localhost";///Endereço do mysql, na maioria das vezes será localhost. $user="root";///Nome de usuário $pwd="";///Senha $dbname ="bd"; $connect = mysql_connect( $host, $user, $pwd ); $select = mysql_select_db( $dbname , $connect ); echo "<form method='post' action='editar.php'>"; echo "Nome:<input name='id' type='text' /><br>"; echo "<input type='submit' value='OK'></form>"; $id = $_POST["id"]; $consulta = mysql_query("SELECT * FROM produtos WHERE id='$id'"); while ($dados = mysql_fetch_array($consulta)) { $id1 = $dados['id']; $_SESSION['id'] = $id1; $nome = $dados['nome']; $preço = $dados['preço']; $qt = $dados['qt']; $desc = $dados['descri']; echo "<form method='post' action='editar.php'>"; echo "ID: $id1<br>"; echo "Nome:<input name='nome' type='text' value='$nome' /><br />"; echo "Preço:<input name='preço' type='text' value='$preço' /><br />"; echo "Quantidade:<input name='qt' type='text' value='$qt' /><br />"; echo "Descrição:<textarea name='desc' cols='' rows=''>'$desc'</textarea>"; echo "<input type='submit' value='OK'></form>"; } if($_POST["nome"] !="") { $nome1 = $_POST['nome']; $preco1 = $_POST["preço"]; $qt1 = $_POST["qt"]; $desc1 = $_POST["desc"]; $editar = "UPDATE produtos SET nome='$nome1' WHERE id='".$_SESSION['id']."'"; $resultado1 = mysql_query($editar); } else echo "grrrrrrrrrrrrrr"; ?>Eu não fiz nenhuma alteração na lógica do seu script, logo não tem porque ele retornar falso no if/else Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bob_Design Postado Fevereiro 12, 2007 Autor Denunciar Share Postado Fevereiro 12, 2007 (editado) Acesso a pag sem dar comandosNotice: Undefined index: id in c:\arquivos de programas\easyphp1-8\www\es.php on line 20 Notice: Undefined index: nome in c:\arquivos de programas\easyphp1-8\www\es.php on line 41 grrrrrrrrrrrrrr Quando eu acesso para alterar Notice: Undefined index: nome in c:\arquivos de programas\easyphp1-8\www\es.php on line 41 grrrrrrrrrrrrrr Quando eu digito o valor e envio Notice: Undefined index: id in c:\arquivos de programas\easyphp1-8\www\es.php on line 20 Notice: Undefined variable: _SESSION in c:\arquivos de programas\easyphp1-8\www\es.php on line 48 Editado Fevereiro 12, 2007 por Bob_Design Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 12, 2007 Denunciar Share Postado Fevereiro 12, 2007 Putz... acho que em primeiro lugar vamos ter que alterar a lógica dessa página, encadeando de forma correto os if/elses necessários... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bob_Design Postado Fevereiro 12, 2007 Autor Denunciar Share Postado Fevereiro 12, 2007 Eu criei a pag só com os comando que eu sei, por isso não fico muito bem organizada Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 12, 2007 Denunciar Share Postado Fevereiro 12, 2007 Como você tem vários "estágios" tem que fazer vários testes para saber onde está naquele momento...<?php session_start(); $host="localhost";///Endereço do mysql, na maioria das vezes será localhost. $user="root";///Nome de usuário $pwd="";///Senha $dbname ="bd"; $connect = mysql_connect( $host, $user, $pwd ); $select = mysql_select_db( $dbname , $connect ); $teste = $_POST['teste']; if ($teste == ""){ echo "<form method='post' action='editar.php'>"; echo "Nome:<input name='id' type='text' /><input name='teste' type='hidden' value='1' /><br>"; echo "<input type='submit' value='OK'></form>"; } elseif ($teste == "1"){ $id = $_POST["id"]; $consulta = mysql_query("SELECT * FROM produtos WHERE id='$id'"); while ($dados = mysql_fetch_array($consulta)) { $id1 = $dados['id']; $_SESSION['id'] = $id1; $nome = $dados['nome']; $preço = $dados['preço']; $qt = $dados['qt']; $desc = $dados['descri']; echo "<form method='post' action='editar.php'>"; echo "ID: $id1<br>"; echo "Nome:<input name='nome' type='text' value='$nome' /><br />"; echo "Preço:<input name='preço' type='text' value='$preço' /><br />"; echo "Quantidade:<input name='qt' type='text' value='$qt' /><br />"; echo "Descrição:<textarea name='desc' cols='' rows=''>'$desc'</textarea>"; echo "<input name='teste' type='hidden' value='2' />"; echo "<input type='submit' value='OK'></form>"; } } elseif ($teste =="2"){ $nome1 = $_POST['nome']; $preco1 = $_POST["preço"]; $qt1 = $_POST["qt"]; $desc1 = $_POST["desc"]; $editar = "UPDATE produtos SET nome='$nome1' WHERE id='".$_SESSION['id']."'"; $resultado1 = mysql_query($editar); } else{ echo "grrrrrrrrrrrrrr"; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bob_Design Postado Fevereiro 12, 2007 Autor Denunciar Share Postado Fevereiro 12, 2007 como funciona este teste que você criou?eu ainda não entendo muito as lógicas do php.Na hora que eu envio os dados para alteração:Notice: Undefined variable: _SESSION in c:\arquivos de programas\easyphp1-8\www\es.php on line 51 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 12, 2007 Denunciar Share Postado Fevereiro 12, 2007 como funciona este teste que você criou?eu ainda não entendo muito as lógicas do php.Na hora que eu envio os dados para alteração:Notice: Undefined variable: _SESSION in c:\arquivos de programas\easyphp1-8\www\es.php on line 51Isso não é lógica do PHP e sim lógica de programação, o que eu fiz foi um meio de garantir que apenas a parte certa do script seja chamada de cada vez, por isso criei uma variável chamada $teste, quando ela estiver vazia é sinal que é a primeira parte do script que tem que ser chamado, essa primeira parte define um valor 1 para a $teste e quando você enviar o form e a $teste assumir o valor 1 o script vai saber que tem que ir para a segunda parte do script e assim por diante...Esqueci de um detalhe muito importante, NA PRIMEIRA LINHA do script coloque:session_start(); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bob_Design Postado Fevereiro 13, 2007 Autor Denunciar Share Postado Fevereiro 13, 2007 Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\arquivos de programas\easyphp1-8\www\editar.php:9) in c:\arquivos de programas\easyphp1-8\www\es.php on line 10 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\arquivos de programas\easyphp1-8\www\editar.php:9) in c:\arquivos de programas\easyphp1-8\www\es.php on line 10 Notice: Undefined index: teste in c:\arquivos de programas\easyphp1-8\www\editar.php on line 17 :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 Existe algum echo, print, código html ANTES de session_start();?... isso tem que ficar na primeira linha da página... ou senão use ob_start() e ob_end_flush()... que quebra o galho. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bob_Design Postado Fevereiro 13, 2007 Autor Denunciar Share Postado Fevereiro 13, 2007 <html><head><title>Teste upload mysql</title></head><body><?phpsession_start();Como posso fazer para deixar o session antes do html? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 <?php session_start(); ?><html><head><title>Teste upload mysql</title></head><body><?php//Aqui você coloca o resto do script... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bob_Design Postado Fevereiro 13, 2007 Autor Denunciar Share Postado Fevereiro 13, 2007 xDFinalmente consegui fazer o update o/graça as dicas de ESerra ;DMuito obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 Beleza... :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bob_Design Postado Fevereiro 14, 2007 Autor Denunciar Share Postado Fevereiro 14, 2007 <?php session_start(); ?> <html> <head> <title>Editar</title> </head> <body> <? $host="localhost";///Endereço do mysql, na maioria das vezes será localhost. $user="root";///Nome de usuário $pwd="";///Senha $dbname ="bd"; $connect = mysql_connect( $host, $user, $pwd ); $select = mysql_select_db( $dbname , $connect ); $consulta = mysql_query("SELECT * FROM produtos"); if($_GET["id"] =="" and $_POST["nome"] =="") { //inicio echo "<table border='1'>"; echo " <tr> <td></td> <td>ID</td> <td>Nome</td> <td>Preço</td> <td>Quantidade</td> <td>Descrição</td> </tr>"; while ($dados = mysql_fetch_array($consulta)) { $id = $dados['id']; echo "<tr><td><a href=\"editar.php?id=$id\">Editar</td></a>"; echo "<td>".$dados['id']."</td></a>"; echo "<td>".$dados['nome']."</td>"; echo "<td>".$dados['preço']." R$</td>"; echo "<td>".$dados['qt']."</td>"; echo "<td>".$dados['descri']."</tr></td>"; } echo "<table>"; //fim } if($_GET["id"] !=""){ $consulta = mysql_query("SELECT * FROM produtos WHERE id='".$_GET['id']."'"); while ($dados = mysql_fetch_array($consulta)) { $id1 = $dados['id']; $_SESSION['id'] = $id1; $nome = $dados['nome']; $preço = $dados['preço']; $qt = $dados['qt']; $desc = $dados['descri']; } /*echo "<form method='post' action='editar.php'>"; echo "ID:<input name='id' type='text' /><br>"; echo "<input type='submit' value='OK'></form>"; $id = $_POST["id"]; $consulta = mysql_query("SELECT * FROM produtos WHERE id='$id'"); if($_POST["id"] !="") { while ($dados = mysql_fetch_array($consulta)) { $id1 = $dados['id']; $_SESSION['id'] = $id1; $nome = $dados['nome']; $preço = $dados['preço']; $qt = $dados['qt']; $desc = $dados['descri']; }*/ echo "<form method='post' action='editar.php'>"; echo "ID: $id1<br>"; echo "Nome:<input name='nome' type='text' value='$nome' /><br />"; echo "Preço:<input name='preço' type='text' value='$preço' /><br />"; echo "Quantidade:<input name='qt' type='text' value='$qt' /><br />"; echo "Descrição:<textarea name='desc' cols='' rows=''>'$desc'</textarea>"; echo "<input type='submit' value='OK'></form>"; }else{} if($_POST["nome"] !="") { $nome1 = $_POST['nome']; $preco1 = $_POST["preço"]; $qt1 = $_POST["qt"]; $desc1 = $_POST["desc"]; $editar = "UPDATE produtos SET nome='$nome1' preço='preco1' qt='qt1' descri'desc1' WHERE id='".$_SESSION['id']."'"; $resultado1 = mysql_query($editar); echo "Dados alterados com sucesso.<br>"; echo "Nome:$nome1<br>"; echo "Preço:$preco1<br>"; echo "Quantidade:$qt1<br>"; echo "Descrição:$desc1"; $consulta = mysql_query("SELECT * FROM produtos"); echo "<table border='1'>"; echo " <tr> <td></td> <td>ID</td> <td>Nome</td> <td>Preço</td> <td>Quantidade</td> <td>Descrição</td> </tr>"; while ($dados = mysql_fetch_array($consulta)) { $id = $dados['id']; echo "<tr><td><a href=\"editar.php?id=$id\">Editar</td></a>"; echo "<td>".$dados['id']."</td></a>"; echo "<td>".$dados['nome']."</td>"; echo "<td>".$dados['preço']." R$</td>"; echo "<td>".$dados['qt']."</td>"; echo "<td>".$dados['descri']."</tr></td>"; } echo "<table>"; }else{} ?> </body> </html> Eu to querendo que no final da alteração mostre a tabela com os dados atualizados Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 14, 2007 Denunciar Share Postado Fevereiro 14, 2007 Qual o problema do código acima?Dei uma olhada rápida e vi que na linha do $editar tá faltando um sinal de = na condição antes do WHERE e outra coisa, você deve separar os ítens do UPDATE por vírgula, tipo valor='$valor', valor2='$valor2', valor3='$valor3'... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bob_Design Postado Fevereiro 14, 2007 Autor Denunciar Share Postado Fevereiro 14, 2007 Assim funciona$editar = "UPDATE produtos SET nome='$nome1' WHERE id='".$_SESSION['id']."'"; mas quando eu coloco os outros campos não $editar = "UPDATE produtos SET nome='$nome1', preço='$preco1', qt='$qt1', descri='$desc1' WHERE id='".$_SESSION['id']."'"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 14, 2007 Denunciar Share Postado Fevereiro 14, 2007 Mais um detalhe essa coluna preço é com ç?Eu vi também que você está usando ç em outras variáveis do script, não use caracteres especiais... eles podem dar problema... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bob_Design Postado Fevereiro 14, 2007 Autor Denunciar Share Postado Fevereiro 14, 2007 (editado) aqui no codigo todos estao como preco0 é o forum que está corrigindo Editado Fevereiro 14, 2007 por Bob_Design Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 14, 2007 Denunciar Share Postado Fevereiro 14, 2007 Já deu echo nas outras variáveis para ver se elas não estão vazias? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Bob_Design
<?
$host="localhost";///Endereço do mysql, na maioria das vezes será localhost.
$user="root";///Nome de usuário
$pwd="";///Senha
$dbname ="bd";
$connect = mysql_connect( $host, $user, $pwd );
$select = mysql_select_db( $dbname , $connect );
echo "<form method='post' action='editar.php'>";
echo "Nome:<input name='id' type='text' /><br>";
echo "<input type='submit' value='OK'></form>";
$id = $_POST["id"];
$consulta = mysql_query("SELECT * FROM produtos WHERE id=$id'");
while ($dados = mysql_fetch_array($consulta))
{
$id1 = $dados['id];
$nome = $dados['nome'];
$preço = $dados['preço'];
$qt = $dados['qt'];
$desc = $dados['descri'];
echo "<form method=post' action='editar.php'>";
echo "ID: $id1<br>";
echo "Nome:<input name='nome' type='text' value='$nome' /><br />";
echo "Preço:<input name='preço' type='text' value='$preço' /><br />";
echo "Quantidade:<input name='qt' type='text' value='$qt' /><br />";
echo "Descrição:<textarea name='desc' cols='' rows=''>'$desc'</textarea>";
echo "<input type='submit' value='OK'></form>";
}
if($_POST["nome] !="")
{
$nome1 = $_POST['nome'];
$preco1 = $_POST["preço"];
$qt1 = $_POST["qt"];
$desc1 = $_POST["desc"];
$editar = "UPDATE produtos SET nome='$nome1' WHERE id='$id'";
$resultado1 = mysql_query($editar);
}
else
echo "grrrrrrrrrrrrrr";
?>
quando eu altero apaga o valor do nome no mysql
Link para o comentário
Compartilhar em outros sites
30 respostass a esta questão
Posts Recomendados
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.