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

(Resolvido)Alterar dados a partir de um listar.php


Ludmila

Pergunta

olá Pessoal preciso de uma ajuda vou tentar explicar o mais minucioso possivel pra ver se consigo porque é meio complicado.

estou trabalhando em um site que ele é interativo a empresa se cadastra e exixtem duas areas separadas (vendedor,empreendedor) no segundo caso é o dono

O vendedor tem uma senha onde ao se logar ele preenche o formulario de venda os dados desse formulario vai para um banco de dados onde o dono entra com uma outra senha e consegue visualizar os dados para emitir a nota fiscal.

tudo isso ta funcionado mas agora precizo colocar nesse "listar.php" um botão de alterar onde ao ser clicado ele permita que o vendedor altere os dados daquele pedido ou exclua aquele registro.

Como posso estar fazendo isso????

vou colocar aqui o link pra vocês visualizarem oque o vendedor ve quando clica em visualizar pedidos e em baixo o codigo que uso para que ele visualize na tela

desde já agradeço

Link:

http://www.varsoft.com.br/pedido_anterior.php

O codigo

<?php

$conexao = mysql_connect("mysql1.000webhost.com", "bd", "senhabdor die (mysql_error());

mysql_select_db("a3847618_varsoft",$conexao) or die (mysql_error());

$listartudo = "SELECT cliente, contato, telefone, situacao, pedido, pedido, validade, forma, desconto, emissao, entrega, numero, interno, produto, quantidade ,valorun, total FROM pedidos";

$resultado = mysql_query($listartudo,$conexao) or die (mysql_error());

$resultado;

print("<table border='1'>

<tr>

<td>cliente</td>

<td>contato</td>

<td>telefone</td>

<td>situacao</td>

<td>pedido</td>

<td>validade</td>

<td>forma</td>

<td>desconto</td>

<td>emissao</td>

<td>entrega</td>

<td>numero</td>

<td>interno</td>

<td>produto</td>

<td>quantidade</td>

<td>valorun</td>

<td>total</td>

</tr>");

while($row = mysql_fetch_array($resultado))

{

echo "<tr>";

echo "<td>" . $row['cliente']. "</td>";

echo "<td>" . $row['contato'] . "</td>";

echo "<td>" . $row['telefone'] . "</td>";

echo "<td>" . $row['situacao'] . "</td>";

echo "<td>" . $row['pedido'] . "</td>";

echo "<td>" . $row['validade'] . "</td>";

echo "<td>" . $row['forma'] . "</td>";

echo "<td>" . $row['desconto'] . "</td>";

echo "<td>" . $row['emissao'] . "</td>";

echo "<td>" . $row['entrega'] . "</td>";

echo "<td>" . $row['numero'] . "</td>";

echo "<td>" . $row['interno'] . "</td>";

echo "<td>" . $row['produto'] . "</td>";

echo "<td>" . $row['quantidade'] . "</td>";

echo "<td>" . $row['valorun'] . "</td>";

echo "<td>" . $row['total'] . "</td>";

echo "</tr>";

}

echo "</table>";

mysql_close($conexao);

?>

Editado por Ludmila
Link para o comentário
Compartilhar em outros sites

17 respostass a esta questão

Posts Recomendados

  • 0

Ludmila,

isso você pode resolver com funções UPDATE e DELETE do MySQL.

ex:

$atualiza = mysql_query("UPDATE pedidos SET cliente='Nome Novo' WHERE pedidoId='id do pedido' LIMIT 1");

$apaga = mysql_query("DELETE FROM pedidos WHERE pedidoId='id do pédido' LIMIT 1");

Até mais

Link para o comentário
Compartilhar em outros sites

  • 0

Ludmila,

Além da ajuda do colega Marcus Nunes, vou dar também uma dica:

Disponibilize os pedidos a serem alterados de maneira que só seja possível alterar quando este ainda não tiver sido concluído.

Por exemplo:

Seria legal ter um campo STATUS na sua tabela de pedido para que você fizesse a listagem dos pedidos que estivessem com o STATUS 0 por exemplo. Aí , quando o EMPREENDEDOR fizesse a nota fiscal para tal pedido, este se atualizaria o STATUS para 1. Assim ele não apareceria na sua listagem de pedidos pendentes.

Link para o comentário
Compartilhar em outros sites

  • 0

Por exemplo:

você tem uma tabela onde você grava os Pedidos, certo?

Então, nessa tabela, você pode colocar um campo chamado STATUS.

Esse campo iria controlar os pedidos de forma que poderia informar ao usuário se o pedido é novo ou não.

Neste caso você pode definir um padrão para isso.

No seu script você deve ter alguma parte que é responsável pelo cadastro desses pedidos..nesse caso , essa parte realiza um INSERT na tabela de pedidos.

Então..o que você faz?

Na sua tabela de pedidos você cria um campo chamado STATUS.

Na query que realiza o INSERT na tabela de pedidos você agrega a ela o campo status.

Ex:

Vamos supor que sua query hoje esteja assim:

//insere na tabela de pedidos
$insere= "insert into tb_pedido(data_pedido,id_loja,id_comprador) values ('2009-05-05',1,20)";
//lembrando que esse é um exemplo
você coloca agrega na sua query , depois de ter criado o campo STATUS na tabela de pedidos:
//insere na tabela de pedidos
$insere= "insert into tb_pedido(data_pedido,id_loja,id_comprador,status) values ('2009-05-05',1,20,0)";
//lembrando que esse é um exemplo
Ou se preferir, quando você criar o campo STATUS, você define um valor padrão para este campo como sendo '0'. Quando o empreendedor for emitir a nota para este pedido, subentende-se que este pedido foi "Finalizado". Neste caso , você criaria uma query para atualizar o campo status daquele pedido. Ex: O empreendedor quer emitir nota para o pedido 15.
//variavel do pedido
$pedido=$_REQUEST['pedido'];

//query que atualiza o pedido
$atualiza="update tb_pedido set status=0 where id_pedido=$pedido";
$executa=mysql_query($atualiza);

Aí , você deve ter no seu sistema uma parte que lista os pedidos a serem emitidos em notas fiscais.

NEste caso, você deve mostrar apenas os pedidos que ainda não tem nota fiscal.

você apenas agrega na query de pedidos a clausula WHERE.

Ficaria "... where status =0";

Link para o comentário
Compartilhar em outros sites

  • 0

Beleza já está quase pronto se não fosse por um probleminha que apareceu aqui!

Quando insiro as informações no banco de dados ela vai normalmente salva no banco de dados certinho mas quando eu clico em alterar ele traz as informações para o formulario de alteração.

Altero os dados necessario clico em alterar normal ele aparece que o cadastro foi alterado com sucesso mas quando visualizo o pedido ele está com os mesmos dados anterires não alterou nem na minha tabela e nem no banco de dados abaixo o codigo

<?php

session_start();

$conexao = mysql_connect("mysql1.000webhost.com", "bd", "senhabd") or die (mysql_error());

mysql_select_db("a3847618_varsoft",$conexao) or die (mysql_error());

$cliente = $_POST['cliente'];

$contato = $_POST['contato'];

$telefone = $_POST['telefone'];

$situacao = $_POST['situacao'];

$pedido = $_POST['pedido'];

$validade = $_POST['validade'];

$forma = $_POST['forma'];

$desconto = $_POST['desconto'];

$emissao = $_POST['emissao'];

$entrega = $_POST['entrega'];

$numero = $_POST['numero'];

$interno = $_POST['interno'];

$produto = $_POST['produto'];

$quantidade = $_POST['quantidade'];

$valorun = $_POST['valorun'];

$total = $_POST['total'];

$sql = mysql_query ("UPDATE pedidos SET cliente = '$cliente' , contato = '$contato' , telefone = '$telefone' , situacao = '$situacao' , pedido = '$pedido' , validade = '$validade' , forma = '$forma' , desconto = '$desconto' , emissao = '$emissão' , entrega = '$entrega' , numero = '$numero' , entrega = '$entrega' , produto = '$produto' , quantidade = '$quantidade' , `valorun` = '$valorun' , total = '$total' WHERE id_usuario = '$id_usuario'") or die (mysql_error);

echo $sql;

die;

if($sql) {

echo "O seu cadastro foi alterado com sucesso!<br>$sql";

}else{

echo "Estamos atualizando nosso banco de dados, tente novamente mais tarde";}

mysql_close($conexao);

?>

Valeu pessoal a ajuda!

Link para o comentário
Compartilhar em outros sites

  • 0

Esta query está errada Ludmila.

$sql = mysql_query ("UPDATE pedidos SET cliente = '$cliente' , contato = '$contato' , telefone = '$telefone' , situacao = '$situacao' , pedido = '$pedido' , validade = '$validade' , forma = '$forma' , desconto = '$desconto' , emissao = '$emissão' , entrega = '$entrega' , numero = '$numero' , entrega = '$entrega' , produto = '$produto' , quantidade = '$quantidade' , `valorun` = '$valorun' , total = '$total' WHERE id_usuario = '$id_usuario'") or die (mysql_error);
você não deve colocar ' ' nos nomes de campos de tabela. Note que o campo valorun esta entre ' '. Está errado.
$sql = mysql_query ("UPDATE pedidos SET cliente = '$cliente' , contato = '$contato' , telefone = '$telefone' , situacao = '$situacao' , pedido = '$pedido' , validade = '$validade' , forma = '$forma' , desconto = '$desconto' , emissao = '$emissão' , entrega = '$entrega' , numero = '$numero' , entrega = '$entrega' , produto = '$produto' , quantidade = '$quantidade' , valorun = '$valorun' , total = '$total' WHERE id_usuario = '$id_usuario'") or die (mysql_error);

Lembre-se também que campos que forem do tipo int não se deve agregar ' ' para a variável.

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigada por responder

Ela está vindo do banco de dados ou seja ela seleciona o usuario pelo id para ele alterar apenas o pedido daquele usuario

Dentro do banco de dados que se chama pedido tem uma coluna chamada id_usuario

ela precisaria aparecer em mais algum lugar?

Link para o comentário
Compartilhar em outros sites

  • 0

Bom não respondeu a minha pergunta, eu perguntei ONDE no script que você postou está sendo criado a variável $id_usuario, já vou postar a resposta: em lugar algum. Você deve passar o id do usuário para esse página para que possa ser criada a variável $id_usuario para que ela possa ser usada na query.

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei se entendi bem mas refiz o codigo e mesmo assim não funcionou da uma olhada por favor

<?php

session_start();

mysql_select_db("a3847618_varsoft",$conexao) or die (mysql_error());

$id_usuario = $_POST['id_usuario'];

$cliente = $_POST['cliente'];

$contato = $_POST['contato'];

$telefone = $_POST['telefone'];

$situacao = $_POST['situacao'];

$pedido = $_POST['pedido'];

$validade = $_POST['validade'];

$forma = $_POST['forma'];

$desconto = $_POST['desconto'];

$emissao = $_POST['emissao'];

$entrega = $_POST['entrega'];

$numero = $_POST['numero'];

$interno = $_POST['interno'];

$produto = $_POST['produto'];

$quantidade = $_POST['quantidade'];

$valorun = $_POST['valorun'];

$total = $_POST['total'];

$sql = mysql_query ("UPDATE pedidos SET cliente = '$cliente' , contato = '$contato' , telefone = '$telefone' , situacao = '$situacao' , pedido = '$pedido' , validade = '$validade' , forma = '$forma' , desconto = '$desconto' , emissao = '$emissão' , entrega = '$entrega' , numero = '$numero' , entrega = '$entrega' , produto = '$produto' , quantidade = '$quantidade' , `valorun` = '$valorun' , total = '$total' WHERE id_usuario = '$id_usuario'") or die (mysql_error);

if($sql) {

echo "O seu cadastro foi alterado com sucesso!<br>$sql";

}else{

echo "Estamos atualizando nosso banco de dados, tente novamente mais tarde";}

mysql_close($conexao);

?>

Obrigada

Link para o comentário
Compartilhar em outros sites

  • 0

Não aparece nada? Então quer dizer que $_POST['id_usuario'] está vazio, imagino que você saiba que $_POST vem de um campo de um formulário, logo, a página anterior a essa deve ter um campo chamado id_usuario, que por sua vez deve ter o valor que vai ser mandado para outra página.

Quanto a ser estranho, não é, basta ler o manual, o que você faz é testar para ver se a query retornou true ou false, no caso ela retorna true porque não foi encontrado nenhum erro (o fato de o $id_usuario estar vazio não gera erro, apenas faz com que nada seja modificado no banco), o correto seria usar o mysql_affetcted_rows para contar quantas linhas foram afetadas (alteradas), se for igual a zero (que é o caso), nada foi modificado.

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,7k
×
×
  • Criar Novo...