sexta-feira, 1 de abril de 2016

Ordenar a matriz pela pela primeira coluna em php

Eae!
Fui desenvolver um relatório para um cliente onde preciso da data da ultima venda e cliente  da tabela, minha solução foi fazer um  distinct e um max no mesmo select. So que queria ordenar por data e não consegui fazer um order by e group by no mesmo select, então a solução for criar uma matriz e ordenar pela primeira coluna:


$sql = "select  distinct(venda.cliente), max(venda.data)
from vendawhere venda.data < '".$_POST['data']."' group by cliente";
$query = ibase_query ($dbh, $sql);
while($row = ibase_fetch_object ($query))
{
$registro[$cont][0] = $row -> MAX;
$registro[$cont][1] = $row ->CLIENTE;
$cont2 =0;
while($cont2 < $cont)
{
if(strtotime($registro[$cont][0]) > strtotime($registro[$cont2][0]))
{
$sup1 = $registro[$cont2][0];
$sup2 = $registro[$cont2][1];
$registro[$cont2][0] = $registro[$cont][0];
$registro[$cont2][1] = $registro[$cont][1];
$registro[$cont][0] = $sup1;
$registro[$cont][1] = $sup2;
}
$cont2++;
}
$cont++;
}

for($i = 0 ; $i< $cont ;$i++)
{
         echo  $registro[$i][0] ."-"$registro[$i][1]."<br>";
        }

Considerações:
- A comunicação foi feita com o banco Firebird e php.
- Os while pode ser trocados pro FOR.