Ir para conteúdo
Fórum Script Brasil
  • 0

Loop


junaooaks

Pergunta

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

  • 0
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);

?>

Link para o comentário
Compartilhar em outros sites

  • 0
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..

Link para o comentário
Compartilhar em outros sites

  • 0

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...

Link para o comentário
Compartilhar em outros sites

  • 0

ta uma olhada

while ($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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...