Montano Postado Janeiro 19, 2009 Denunciar Share Postado Janeiro 19, 2009 (editado) boa noite.. esta dando erro quando eu ponho um update dentro de um for. eu preciso fazer o seguinte.. tenho uma tabela com 4 campos. TA,Comissao_TA,Consultor,Comissao_Consultor;preciso somar todas comissoes de um empregado, sendo que ele pode estar como ta ou consultor, ou até mesmo os dois ao mesmo tempo.para isso fiz esse script.$sql = "select * from tb_comissao where (substring( data_receb , 1 , 7 ) = '20$ano-$mes' or substring( data_exo , 1 , 7 ) = '20$ano-$mes') and (ta = '$empregado[2]' or consultor = '$empregado[2]') ORDER BY ta and consultor ASC "; $result = mysql_query($sql); $linha = mysql_num_rows($result); for ($i=0;$i<$linha;$i++) { $reg = mysql_fetch_row($result); echo "<tr>"; echo "<td><font size='2'><option>$reg[4]</option></font></td>"; //ta echo "<td><font size='2'><option>$reg[5]</option></font></td>"; echo "<td><font size='2'><option>$reg[6]</option></font></td>"; //consultor echo "<td><font size='2'><option>$reg[7]</option></font></td>"; if (($reg[4] == $empregado[2]) and ($reg[6] != $empregado[2])) { $comissao[2] = $reg[5]; $sql="UPDATE tb_fresumo SET nome = '$empregado[2]', valor = '$comissao[2]' WHERE nome = '$empregado[2]'"; $result = mysql_query($sql); } if (($reg[6] == $empregado[2]) and ($reg[4] != $empregado[2])) { $comissao[2] = $reg[7]; $sql="UPDATE tb_fresumo SET nome = '$empregado[2]', valor = '$comissao[2]' WHERE nome = '$empregado[2]'"; $result = mysql_query($sql); } if (($reg[4] == $empregado[2]) and ($reg[6] == $empregado[2])) { $comissao[2] = $reg[5] + $reg[7]; $sql="UPDATE tb_fresumo SET nome = '$empregado[2]', valor = '$comissao[2]' WHERE nome = '$empregado[2]'"; $result = mysql_query($sql); } echo "</tr>"; }só que esta dando erro. alguém sabe me dizer o porq? Editado Janeiro 21, 2009 por Montano Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 M@luco Belez@ Postado Janeiro 20, 2009 Denunciar Share Postado Janeiro 20, 2009 Ola.Vamos por partes:-Quando postar um código, coloca entre as tags code para facilitar a leitura.Quanto ao seu problema:-Que erro está dando?Algumas dicas:-Sempre que for usar o mysql_query(), peça para mostrar na tela possíveis erros, assim.. $result = mysql_query($sql) or die("erro de sql: ".mysql_error()); .. Isso vale para qualquer comando sql(insert, select, update..) -Quando for usar o valor de um array num comando sql, use assim .. valor = '".$comissao[2]."' .. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Montano Postado Janeiro 21, 2009 Autor Denunciar Share Postado Janeiro 21, 2009 Ola.Vamos por partes:-Quando postar um código, coloca entre as tags code para facilitar a leitura.Quanto ao seu problema:-Que erro está dando?Algumas dicas:-Sempre que for usar o mysql_query(), peça para mostrar na tela possíveis erros, assim.. $result = mysql_query($sql) or die("erro de sql: ".mysql_error()); .. Isso vale para qualquer comando sql(insert, select, update..) -Quando for usar o valor de um array num comando sql, use assim .. valor = '".$comissao[2]."' ..certamente o erro deve ser esse. o erro que dava dando era no num_rows. oque indica que o erro seria no select, eu botei assim '$comissao[2]'obrigado pela ajuda, desculpe pela má formataçao do post.problema resolvido. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Montano
boa noite.. esta dando erro quando eu ponho um update dentro de um for.
eu preciso fazer o seguinte.. tenho uma tabela com 4 campos. TA,Comissao_TA,Consultor,Comissao_Consultor;
preciso somar todas comissoes de um empregado, sendo que ele pode estar como ta ou consultor, ou até mesmo os dois ao mesmo tempo.
para isso fiz esse script.
$sql = "select * from tb_comissao where (substring( data_receb , 1 , 7 ) = '20$ano-$mes' or substring( data_exo , 1 , 7 ) = '20$ano-$mes') and (ta = '$empregado[2]' or consultor = '$empregado[2]') ORDER BY ta and consultor ASC "; $result = mysql_query($sql); $linha = mysql_num_rows($result); for ($i=0;$i<$linha;$i++) { $reg = mysql_fetch_row($result); echo "<tr>"; echo "<td><font size='2'><option>$reg[4]</option></font></td>"; //ta echo "<td><font size='2'><option>$reg[5]</option></font></td>"; echo "<td><font size='2'><option>$reg[6]</option></font></td>"; //consultor echo "<td><font size='2'><option>$reg[7]</option></font></td>"; if (($reg[4] == $empregado[2]) and ($reg[6] != $empregado[2])) { $comissao[2] = $reg[5]; $sql="UPDATE tb_fresumo SET nome = '$empregado[2]', valor = '$comissao[2]' WHERE nome = '$empregado[2]'"; $result = mysql_query($sql); } if (($reg[6] == $empregado[2]) and ($reg[4] != $empregado[2])) { $comissao[2] = $reg[7]; $sql="UPDATE tb_fresumo SET nome = '$empregado[2]', valor = '$comissao[2]' WHERE nome = '$empregado[2]'"; $result = mysql_query($sql); } if (($reg[4] == $empregado[2]) and ($reg[6] == $empregado[2])) { $comissao[2] = $reg[5] + $reg[7]; $sql="UPDATE tb_fresumo SET nome = '$empregado[2]', valor = '$comissao[2]' WHERE nome = '$empregado[2]'"; $result = mysql_query($sql); } echo "</tr>"; }só que esta dando erro.
alguém sabe me dizer o porq?
Editado por MontanoLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.