Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vitinho.vitor

Diversos Loops em script

Recommended Posts

Boa noite,

estou com um problema.

// ********** STATUS *************** //
if ($status == "Faturado") {
$faturamento = "`data_faturamento` = '".date("Y-m-d H:i:s")."',";
$verba = "`verba` = '{$verbapendente}',";
} else if($status == "Expedição") {
$faturamento = "`data_faturamento` = '0000-00-00 00:00:00',";
} else {
       $faturamento = "";
}
// ********** FIM STATUS *************** //

$sql = mysql_query("SELECT * FROM pedidos WHERE id = '$id'");

while ($row = mysql_fetch_array($sql)) {
if(isset($_POST['comissao'])) {
	$busca_com = mysql_query("SELECT codigo, com_rep FROM produtos WHERE codigo = '$row[id_produto]'");
	while ($com = mysql_fetch_array($busca_com)) {
		$percentual = $com['com_rep'] / 100;
		$comissao = ($percentual * $row['total']);
	}
} else {
	$comissao = 0;	
}
$verbapendente = $row['verbapendente'];
 	$atualiza = "UPDATE `hipermarcas1`.`pedidos` SET 
".$faturamento."
".$verba."
`status` = '{$status}', 
`comissao` = '{$comissao}', 
`obs` = '{$obs}' WHERE `pedidos`.`id` = '{$id}'";	
mysql_query($atualiza) or die(mysql_error());
echo "<h2>Edição de pedido feita com sucesso! Voltar para <a href='gerencia_pedidos.php'>Lista de Pedidos!</a></font></h2></center>";
}

 

Então, o meu problema é que ele está calculando os valores de $comissao corretamente, porém na hora de gravar no banco ele está jogando o mesmo valor de $comissao para todas as linhas. Não sei o que acontece.

 

Outro problema que eu estou é que o valor de $verbapendente não está sendo atualizado.

 

Será que alguém poderia me dar uma luz ?!

 

Desde já agradeço,

Vitor

 

Desculpem, consegui consertar !! Resolvido

Compartilhar este post


Link para o post
Compartilhar em outros sites

o while vai nada mais do que percorrer sua consulta inteira e o que acontece quando você sai desse while ele não vai listar todos os valores e sim apenas o último.

 

então a sua $comissão não é um monte de valores mais sim o último.

 

você precisa deixar esse update dentro do seu while(do while que seta a comissão) ou criar a condição antes para setar comissão = 0;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.