Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Consulta não ordena


JonasFloripa

Question

Olá Galera.

Estou fazendo um sistema de controle de horas extras e estou com um problema de ordenar a consulta que estou fazendo.

Funciona assim:

Tenho uma tabela, CANDIDATOS, onde contem todos os candidatos a participar de uma determinada hora extra exposta. Tenho outra tabela, TOTALHORAS, que contem todas as horas que são feitas pelo funcionários.

Quando vou montar a escala, eu listo os candidatos e vou na tabela TOTALHORAS e busco a média de horas dos candidatos, para que eu possa escolher os de menor média.

O problema que não consigo ordenar essa minha média, segue abaixo meu código para alguém ver o que está de errado.

Agradeço a ajuda.

<?php
                $sqlhora2 ="select login from candidatos where idescala=$idescala";
                $resultadohora2 = $obj->executaQuery($sqlhora2);
                while ( $linhaH2 = mysql_fetch_array($resultadohora2) )
                {       
                        $loginhora2 = $linhaH2['login'];
                        //$query2 = "SELECT sum(hora2) as temphora2 FROM totalhoras where MONTH(data)='".$mes_atual."' and login='$loginhora2' order by temphora2 asc";
                        $query2 = "select avg(hora2) as mediah2 from totalhoras where login='$loginhora2' AND data BETWEEN '2011-01-01' AND '2011-08-31' group by '".$loginhora2."' order by mediah2 asc";
                        $resultado2 = $obj->executaQuery($query2);
                        while ( $linha2 = mysql_fetch_array($resultado2) )
                        {       
?>
        <tr bgColor="#FFFFFF" onMouseOver="bgColor='#cccccc'" onMouseOut="bgColor='#FFFFFF'">
                <td width="40%" align="left" class="letra"><? echo $linhaH2['login']; ?></td>           
            <td width="30%" class="letra" align="center"><? echo $linha2['mediah2']; ?></td>
    </tr>
<?php
                        }
                }       
?>

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Pra quem prceisar, usei o inner join porque tinha 2 loop, não funcionava, ai vai o certo.

<?php
        $sqlhora1 = "select candidatos.login, avg(totalhoras.hora1) as mediah1 from candidatos inner join totalhoras where candidatos.idescala=$idescala and totalhoras.login = candidatos.login AND totalhoras.data BETWEEN '2011-01-01' AND '2011-08-31' group by totalhoras.login order by mediah1 asc";
        $resultadohora1 = $obj->executaQuery($sqlhora1);
        while ( $linhaH1 = mysql_fetch_array($resultadohora1) )
        {    
              $login1 = $linhaH1['login'];
              $mediaH1 = $linhaH1['mediah1'];
              $media1 = number_format( $mediaH1, 2, ",", "." );
?>
    <tr bgColor="#FFFFFF" onMouseOver="bgColor='#cccccc'" onMouseOut="bgColor='#FFFFFF'">
        <td width="73%" align="left" class="letra"><? echo $login1; ?></td>        
        <td width="27%" class="letra" align="center"><? echo $media1; ?></td>
    </tr>
<?php
        }    
?>

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...