Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal, Estou precisando de uma força.
Criei uma tela de venda e que baixa estoque de uma tabela de estoque separada, porem estou com dificuldade de retornar o estoque de varios itens de uma vez quando eu excluo a venda?
Para cada produto vendido eu crio uma linha na tabela de vendas, mas para deletar eu uso só uma das referencias, por isso o select duplo na mesma tabela, para retornar com o primeiro valor, as demais linhas que possuem o mesmo numero de pedido.
Nesta regra tentei buscar a tabela de estoque e a tabela de vendas e somar o campo de venda ao campo de estoque e fazer um update no estoque, mas ele faz apenas para 1 item
Segue o codigo que estou tentando usar para atualizar varias linhas na tabela de estoque de borrachas:
protected function retornaitens() {
$dadosVenda = "SELECT * from pdvborracha WHERE id = $_GET["var3"];
$dadostodas = "SELECT * FROM pdvborracha WHERE pedido = ".$dadosVenda["pedido"];
$linhafinal = mysql_fetch_array($dadostodas);
$query = "SELECT * FROM estoquematprima WHERE produto=".$linhafinal["produto"];
($linha = mysql_fetch_array($query));
$quantidade = $linha["quantidade"] + $linhafinal["quantidade"];
$query = "UPDATE estoquematprima SET quantidade=".$quantidade." WHERE produto=".$linhafinal["produto"];>
1 minuto atrás, Alaerte Gabriel disse:
Você precisa adicionar um laço de repetição para percorrer os registros, faltou um while() aí
while($linha = mysql_fetch_array($query));
seria isso?Sim, mas nunca execute métodos e cálculos nas defininições dos laços e condicionais (while, for, foreach, if, etc).
Neste caso, guarde o array de resultados numa variável e em seguida execute o while:
$resultadoQuery = mysqli_query($con,$query);
$conjuntoDeRegistros = mysqli_fetch_array($resultadoQuery);
while($linha = $conjuntoDeRegistros){
echo $linha['nome_da_coluna'].'<br>';
}
Neste exemplo usei o mysqli ao invés do mysql que está usando.
O driver padrão mysql já está deprecado na versão 7 do PHP (além dele ser bem mais lento que o mysqli e ninguém mais deveria usá-lo em ambientes de produção há anos).>
Em 06/03/2017 at 08:20, Alexandre Kopelevitch disse:
Sim, mas nunca execute métodos e cálculos nas defininições dos laços e condicionais (while, for, foreach, if, etc).
Neste caso, guarde o array de resultados numa variável e em seguida execute o while:
$resultadoQuery = mysqli_query($con,$query);
$conjuntoDeRegistros = mysqli_fetch_array($resultadoQuery);
while($linha = $conjuntoDeRegistros){
echo $linha['nome_da_coluna'].'<br>';
}
Neste exemplo usei o mysqli ao invés do mysql que está usando.
O driver padrão mysql já está deprecado na versão 7 do PHP (além dele ser bem mais lento que o mysqli e ninguém mais deveria usá-lo em ambientes de produção há anos).
Preciso atualizar Alexandre, mas ja tem bastante tempo que uso esse driver no meu servidor e tem muitas paginas no controller com esse driver, vai dar trabalho reescrever tudo.
Você precisa adicionar um laço de repetição para percorrer os registros, faltou um while() aí