Ir para conteúdo
Fórum Script Brasil
  • 0

Update Mysql


Bob_Design

Pergunta

<?

$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

Posts Recomendados

  • 0

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...

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

Acesso a pag sem dar comandos

Notice: 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 por Bob_Design
Link para o comentário
Compartilhar em outros sites

  • 0

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";
}

?>

Link para o comentário
Compartilhar em outros sites

  • 0

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

Isso 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();

Link para o comentário
Compartilhar em outros sites

  • 0

 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

:(

Link para o comentário
Compartilhar em outros sites

  • 0

<?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']."&nbsp;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']."&nbsp;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

Link para o comentário
Compartilhar em outros sites

  • 0

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'...

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...