junaooaks Postado Agosto 6, 2007 Denunciar Share Postado Agosto 6, 2007 ai galeranão to conseguindo da um loop em uma consulta sql :while($linha=mysql_fetch_array($result)){$mysql="select sum(i.valor_vendido) as vendido, sum(pro.valor) as valorfrom itens i, produto prowhere i.cod_pedido ='".$linha['cod_pedido']."' AND i.cod_produto=pro.cod_produto";};so me retorna o 1º Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Evandro Fontes Postado Agosto 6, 2007 Denunciar Share Postado Agosto 6, 2007 Não entendi exatamente sua dúvida.. posta a instrução SQL naqual você faz o loop.. as vezes mostra o primeiro porque só retornou 1 resultado... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 junaooaks Postado Agosto 6, 2007 Autor Denunciar Share Postado Agosto 6, 2007 posta a instrução SQL naqual você faz o loop.. as vezes mostra o primeiro porque só retornou 1 resultado...vo postar o codigo da pagina e grifar de vermelho onde faz o loop, isto ai ele so retorna 1 resultado<?php $vendedor = $_POST["vend"]; $mês = $_POST["me"]; $ano = $_POST["an"]; //conexao com o banco de dado sisgew $conn = mysql_connect('localhost', 'root', '123'); $db = mysql_select_db("sisgew") or die ("não HÀ BANCO DE DADO!"); //consulta sql no banco de dado $sql = "select p.cod_pedido, p.mês, p.ano, c.nome, v.nome_vend from pedido p, cliente c, vendedor v where v.cod_vendedor = '$vendedor' and p.mês = '$mês' and p.ano = '$ano' and c.cnpj = p.cnpj and p.cod_vendedor = v.cod_vendedor group by p.cod_pedido, p.mês, p.ano, c.nome, v.nome_vend "; $result = @mysql_query($sql); if (!$result) { echo "ERRO NA CONSULTA:sql" . mysql_error(); exit; } if(mysql_num_rows($result) == 0) { echo "Nada foi encontrado para a consulta"; exit; } $ros= mysql_fetch_assoc($result); $result = @mysql_query($sql); if (!$sql) echo "ERRO NA CONSULTA:sql" . mysql_error(); [color="#FF0000"]while($linha=mysql_fetch_array($result)){ $mysql="select sum(i.valor_vendido) as vendido, sum(pro.valor) as valor from itens i, produto pro where i.cod_pedido ='".$linha['cod_pedido']."' AND i.cod_produto=pro.cod_produto"; };[/color] $my = @mysql_query($mysql); if (!$mysql) //Se não rolou a query echo "ERRO CONSULTA: mysql" . mysql_error(); //resulta na tela $row = mysql_fetch_assoc($my); // fazer o calculo do desconto com a comissao $tabela = $row['valor']; $venda = $row['vendido']; $desconto = (( $venda / $tabela) -1); $arredondamento = round ($desconto , 2); $numero = $arredondamento * -1; if ($numero <=0.00){ $comissao =10;} if ($numero == 0.01){ $comissao =9.5;} if ($numero == 0.02){ $comissao =9;} if ($numero == 0.03){ $comissao =8.5;} if ($numero == 0.04){ $comissao =8;} if ($numero == 0.05){ $comissao =7.5;} if ($numero == 0.06){ $comissao =7;} if ($numero == 0.07){ $comissao =6.5;} if ($numero == 0.08){ $comissao =6;} if ($numero == 0.09){ $comissao =5.5;} if ($numero == 0.10){ $comissao =5;} if ($numero == 0.11){ $comissao =4.5;} if ($numero == 0.12){ $comissao =4;} if ($numero == 0.13){ $comissao =3.5;} if ($numero == 0.14){ $comissao =3;} if ($numero == 0.15){ $comissao =2.5;} if ($numero == 0.16){ $comissao =2;} if ($numero == 0.17){ $comissao =1.5;} if ($numeto == 0.18){ $comissao =1;} if ($numero == 0.19){ $comissao =0.5;} if ($numero == 0.20){ $comissao =0.0;} $numeros = substr($numero, strpos ($numero,'.')+1,3); $vlr_comissao = $numeros/100* $venda; $vl_comissao = round ($vlr_comissao, 2); ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Evandro Fontes Postado Agosto 6, 2007 Denunciar Share Postado Agosto 6, 2007 posta a instrução SQL naqual você faz o loop.. as vezes mostra o primeiro porque só retornou 1 resultado...vo postar o codigo da pagina e grifar de vermelho onde faz o loop, isto ai ele so retorna 1 resultado<?php $vendedor = $_POST["vend"]; $mês = $_POST["me"]; $ano = $_POST["an"]; //conexao com o banco de dado sisgew $conn = mysql_connect('localhost', 'root', '123'); $db = mysql_select_db("sisgew") or die ("não HÀ BANCO DE DADO!"); //consulta sql no banco de dado $sql = "select p.cod_pedido, p.mês, p.ano, c.nome, v.nome_vend from pedido p, cliente c, vendedor v where v.cod_vendedor = '$vendedor' and p.mês = '$mês' and p.ano = '$ano' and c.cnpj = p.cnpj and p.cod_vendedor = v.cod_vendedor group by p.cod_pedido, p.mês, p.ano, c.nome, v.nome_vend "; $result = @mysql_query($sql); if (!$result) { echo "ERRO NA CONSULTA:sql" . mysql_error(); exit; } if(mysql_num_rows($result) == 0) { echo "Nada foi encontrado para a consulta"; exit; } $ros= mysql_fetch_assoc($result); $result = @mysql_query($sql); if (!$sql) echo "ERRO NA CONSULTA:sql" . mysql_error(); [color="#FF0000"]while($linha=mysql_fetch_array($result)){ $mysql="select sum(i.valor_vendido) as vendido, sum(pro.valor) as valor from itens i, produto pro where i.cod_pedido ='".$linha['cod_pedido']."' AND i.cod_produto=pro.cod_produto"; };[/color] $my = @mysql_query($mysql); if (!$mysql) //Se não rolou a query echo "ERRO CONSULTA: mysql" . mysql_error(); //resulta na tela $row = mysql_fetch_assoc($my); // fazer o calculo do desconto com a comissao $tabela = $row['valor']; $venda = $row['vendido']; $desconto = (( $venda / $tabela) -1); $arredondamento = round ($desconto , 2); $numero = $arredondamento * -1; if ($numero <=0.00){ $comissao =10;} if ($numero == 0.01){ $comissao =9.5;} if ($numero == 0.02){ $comissao =9;} if ($numero == 0.03){ $comissao =8.5;} if ($numero == 0.04){ $comissao =8;} if ($numero == 0.05){ $comissao =7.5;} if ($numero == 0.06){ $comissao =7;} if ($numero == 0.07){ $comissao =6.5;} if ($numero == 0.08){ $comissao =6;} if ($numero == 0.09){ $comissao =5.5;} if ($numero == 0.10){ $comissao =5;} if ($numero == 0.11){ $comissao =4.5;} if ($numero == 0.12){ $comissao =4;} if ($numero == 0.13){ $comissao =3.5;} if ($numero == 0.14){ $comissao =3;} if ($numero == 0.15){ $comissao =2.5;} if ($numero == 0.16){ $comissao =2;} if ($numero == 0.17){ $comissao =1.5;} if ($numeto == 0.18){ $comissao =1;} if ($numero == 0.19){ $comissao =0.5;} if ($numero == 0.20){ $comissao =0.0;} $numeros = substr($numero, strpos ($numero,'.')+1,3); $vlr_comissao = $numeros/100* $venda; $vl_comissao = round ($vlr_comissao, 2); ?>Bom.. neste loop que você fez, ele executa o loop e faz diversas vezes essa instrução SQL:while($linha=mysql_fetch_array($result)){ $mysql="select sum(i.valor_vendido) as vendido, sum(pro.valor) as valor from itens i, produto pro where i.cod_pedido ='".$linha['cod_pedido']."' AND i.cod_produto=pro.cod_produto";};Ele retorna só uma porque no loop em si ele só associa a instrução à variável... Na consulta SQL em si, ele pega o último valor atribuido no loop... Se você quiser um loop de diversas consultas.. abrange esse while pra pegar todo o código em que você vai usar essa instruçã SQL.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 junaooaks Postado Agosto 6, 2007 Autor Denunciar Share Postado Agosto 6, 2007 Se você quiser um loop de diversas consultas.. abrange esse while pra pegar todo o código em que você vai usar essa instruçã SQL..mas como ?eu to perdido na propria pagina :blink: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Evandro Fontes Postado Agosto 6, 2007 Denunciar Share Postado Agosto 6, 2007 HEHEHEHEHE..... o melhor afazer é assim, dê uma olhada no seu código..e ve se ele tá atendendo o que você necessita.... p/ ser sincero.. não intendi muito bem sua intenção.. se você quer fazer um loop no banco e usar as variáveis... você tem que fazer td isso dentro do loop... e não só a instruçaõ SQL... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MLeandroJr! Postado Agosto 6, 2007 Denunciar Share Postado Agosto 6, 2007 Se você colocar a consulta MySQL dentro do loop, terá várias vezes o mesmo resultado.Você precisa colocá-la fora do loop e fazer o laço somente para os resultados, assim elesserão mostrados um a um.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 junaooaks Postado Agosto 6, 2007 Autor Denunciar Share Postado Agosto 6, 2007 ta uma olhadawhile ($linha = mysql_fetch_array($result, $sql)){echo $nome = $ros['nome'];echo $nome_vend = $ros['nome_vend'];echo $cod_pedido = $ros['cod_pedido'];echo $valor_tab = $row['valor'];echo $valor_vend= $row['vendido'];echo $meses = $ros['mês'];echo $anos = $ros['ano']; $tabela = $row['valor']; $venda = $row['vendido']; $desconto = (( $venda / $tabela) -1);$arredondamento = round ($desconto , 2);};ela so me retorna: nome, nome_vend, meses, anos, cod_pedido e mesmo assim repeti o mesmo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
junaooaks
ai galera
não to conseguindo da um loop em uma consulta sql :
while($linha=mysql_fetch_array($result)){
$mysql="select sum(i.valor_vendido) as vendido, sum(pro.valor) as valor
from itens i, produto pro
where i.cod_pedido ='".$linha['cod_pedido']."' AND i.cod_produto=pro.cod_produto";
};
so me retorna o 1º
Link para o comentário
Compartilhar em outros sites
7 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.