Ir para conteúdo

POWERED BY:

Arquivado

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

Walter Chilomer

UPDATE de várias linhas de uma tabela com um cálculo

Recommended Posts

Galera,

 

Problema:

Não estou conseguindo atualizar os registros de uma tabela com valores de um cálculo

 

&

Aqui deleto a tabela temporaria t_qt_cto, que é criada logo abaixo

<?php

include "conecta.php";

$sql = mysql_query ("DROP TABLE t_qt_cto");

mysql_close($con);

?>

 

&

tab_formulas = Tabela de fórmulas com mais de 2000 registros e 200 fórmulas

 

&

<?php

$sql = "create table t_qt_cto SELECT * FROM tab_formulas WHERE fo_cod_base like '$cod_base%'";

$res = mysql_query($sql);

?>

 

&

Tabela: t_qt_cto – Tabela temporária de fórmulas com apenas uma fórmula gravada

 

$cod_fo = $registro[0]; //fo_ID ID

$cod_aca = $registro[1]; //fo_cod_aca Código do produto - Indice

$descri_aca = $registro[3]; //fo_descri_aca Descrição do insumo

$cod_pro = $registro[5]; //fo_cod_pro Código do insumo

$cento_for = $registro[7]; //fo_cento_for Porcentual do insumo na fórmula

$fantasia = $registro[11]; //fc_fantasia Nome fantasia da empresa

$cod_ID = $registro[14]; //ee_ID ID da tabela do estoque

$qt_cto = $registro[15]; //fo_qt_cto (calculo cento_for * quanti_base)

 

&

A váriavel $quanti_base vem de um input no começo do script

<?php

$qt_cto= $_POST["quanti_base] * $_POST["cento_for]/100; //Aqui faço o cálculo

 

&

$sql = "UPDATE t_qt_cto SET fo_qt_cto='$qt_cto'"; //Aqui tento atualizar a tabela. Não é necessário a cláusula WHERE pois há somente uma fórmula com um único indice

$res = mysql_query($sql);

?>

 

&

O valor $qt_cto deve ser gravado em todos os registros da tabela.

 

Por exemplo:

Registro 1

fo_cento_for = 20,000

fo_qt_cto = $qt_cto

 

Registro 2

fo_cento_for = 37,000

fo_qt_cto = $qt_cto

 

Registro 3

fo_cento_for = 40,500

fo_qt_cto = $qt_cto

 

etc...(até 20 ou 30 registros)

 

Algum mestre tem alguma idéia de como atualizar a tabela?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, resolvido,

Fiz assim:

 

<html>
<body>
<div align="center">
<font face="Arial" size="2">
<?php
if(!$submit){
echo DoForm();
}
else{
}
?>
</font>
</div>
</body>
</html>
<?php
function DoForm(){
include "ddp_conecta.php";
$sql = ("SELECT * FROM t_qt_cto INNER JOIN tab_estoque ON t_qt_cto.fo_cod_pro=tab_estoque.ee_codigo WHERE t_qt_cto.fo_cod_base ORDER by fo_fase");
$resultado = mysql_query ($sql,$con);
if ($resultado) {
$str="<form method=\"post\">";
$str.="<table width=\"100%\" align=center cellspacing=\"0\" border=1>";
$str.="
<tr>
<td width=\"10%\" align=center bgcolor=\"FFFF00\" > ID </td>
<td width=\"10%\" align=center bgcolor=\"FFFF00\" > CÓDIGO </td>
<td width=\"50%\" align=center bgcolor=\"FFFF00\" > MATÉRIA PRIMA </td>
<td width=\"10%\" align=center bgcolor=\"FFFF00\" > % </td>
<td width=\"10%\" align=center bgcolor=\"FFFF00\" > Kg M P </td>
<td width=\"10%\" align=center bgcolor=\"FFFF00\" > ESTOQUE </td>
</tr>";
while ($registo=mysql_fetch_array($resultado)){
$ID = $registo["fo_ID"];
$cod_pro = $registo["fo_cod_pro"];
$descri_pro = $registo["fo_descri_pro"];
$cento_for = $registo["fo_cento_for"];
$Kg_base = $registo["fo_Kg_base"];
$qt_cto = $registo["fo_qt_cto"];
$estoque = $registo["ee_estoque"];
$Kg_qt_cto = ($cento_for*$Kg_base)/100;
$k =number_format(($Kg_qt_cto),3,",",".");
$str.="
<tr>
////////////////////////////////////////////////////////////////////////AQUI EU MOSTRO O RESULTADO NA TELA
<td align=center> $ID </td>
<td align=center> $cod_pro </td>
<td align=left> $descri_pro </td>
<td align=right> $cento_for </td>
<td align=right bgcolor=\"F4CB80\"> $k </td>
<td align=right> $estoque </td>
</tr>";
}
$str.="</table></form>";
}
mysql_close($con);
return $str;
}
?>

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.