Jump to content
Artur Mendonça

Ordenar consulta base64

Recommended Posts

Olá amigos, 

tenho uma BD Mysql onde são guardados dados codificados com Base64_encode. 

Preciso fazer uma consulta em que os dados gravados em um campo (a que vamos chamar nome para facilitar) sejam ordenado por ordem ascendente. 

 

Tenho assim:

$SQL = "select * from tbl_dados where ativo ='1' order by from_base64('nome') asc" 

mas não está funcionando, pois os dados aparecem pela ordem que está gravado na tabela. 

 

Já tentei de várias formas mas sem sucesso. 

 

Podem ajudar-me por favor? 

 

Desde já muito obrigado. 

Share this post


Link to post
Share on other sites

$SQL = "SELECT from_base64('tbl_dados'.'nome') AS  'decodificado', tbl_dados.* FROM tbl_dados WHERE ativo ='1' ORDER BY decodificado ASC"

 

Acredito que assim vai dar certo

Share this post


Link to post
Share on other sites

Tenho o ficheiro conexao.php com seguinte:

<?php
$conectar=mysqli_connect("IP", "utilizador", "senha","BD") or die ("Erro na ligação");
?>

Na página da consulta está assim:

<?php
include_once("../../conexao.php");
$sql = "SELECT from_base64('tbl_dados'.'nome') AS  'ndecod', tbl_dados.* FROM tbl_dados WHERE ativo ='1' ORDER BY ndecod ASC";
$rs_result = mysqli_query($conectar, $sql);
?>

Algum código

<?php
While ($row= mysqli_fetch_assoc($rs_result)){

*o que acontece *
}
?>

 

O erro está dando na linha

While ($row = mysqli_fetch_assoc($rs_result)){

 

 

A localização do ficheiro conexao.php está correta, pois se fizer a consulta sem o

Citar

from_base64('tbl_dados'.'nome') AS  'ndecod', tbl_dados. 
e o

ORDER BY ndecod ASC

consigo obter os dados, mas não os consigo ter por ordem alfabética.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Jefferson andre
      Saudacoes, como faço apara a query andar de lado 2 a 2 em vez de ir sempre para baixo.
       
      Na foto anexo onde esta vazio deveria estar preenchido
       
      Segue meu codigo se alguem puder dar uma olhada agradeço
      #Consulta $resultado_videos = $arquivo->query("SELECT * FROM contador_diario ORDER BY data DESC LIMIT 7"); while($aux = mysqli_fetch_assoc($resultado_videos)) { $cont=$cont+1; //acrescenta valor ao cont $contador = $aux["contador"]; $data = $aux["data"]; $floatVal = floatval($cont/2); // If the parsing succeeded and the value is not equivalent to an int if($floatVal && intval($floatVal) != $floatVal){ echo "<tr>  <td bgcolor='#CCCCCC'> {$contador} </td>  <td </td>  </tr>"; } else { echo "<tr>  <td </td>  <td bgcolor='#CCCCCC'> {$contador} </td>  </tr>"; } } echo"</table></div></body>";  
       
    • By Jefferson andre
      Saudações a todos,
       
      Criei um relatório bem simples que desce linha a linha, mas como sobrou espaco na tela eu gostaria de colocar o mesmo relatorio em duas colunas.
       
      Então pensei em controlar se a sequencia impressa eh par ou impar verificando se a divisao por 2 da um resultado inteiro.
       
      Mas me surgiu a duvida se existe algum comando que verifique se a variavel eh inteira ou se eh necessario verificar se o tipo eh double.
       
      Aceito sugestões ou exemplo desse tipo de report
       
      Agradeço
    • By Anderson Campos da Silva
      Olá,
       
      Estou com um problema, que para alguns pode ser simples, é o seguinte:
       
      Tenho 2 tabela relacionadas, MODELO e EQUIPAMENTO
       
      TABELA MODELO
      idModelo (INT) - chave primária  
      txModelo (VARCHAR)
       
      TABELA EQUIPAMENTO 
      idEquipamento (INT) - chave primária   
      patrimonio (VARCHAR)
      situacao (VARCHAR)
      idModelo (INT) - Chave estrangeira
       
      O campo situação pode ser preenchido apenas apenas com PRODUÇÃO OU ESTOQUE.
       
      Enfim, preciso de um SELECT que retorne as seguintes colunas txModelo, quantidade de equipamentos por modelo, quantidade de equipamentos com PRODUÇÃO, e quantidade de equipamentos com ESTOQUE, exemplo:
       
      txModelo | total | produção | estoque
      CISCO           7            4                  3
      HP                15          10                 5
      DELL            10           2                   8
       
      Desde já agradeço
    • By Leandro T.
      Bom dia pessoal!
       
      Esta query está demorando 4 segundos. Será que teria como otimizá-la, lembrando que já estão indexadas as colunas: id, idtitulos, data e vencimento
       
      SELECT duplicatas.vencimento, data, duplicatas.valor, duplicatas.id
      FROM duplicatas 
      left   JOIN
      (
      select IdTitulo, data, Valor from pagtos  GROUP BY IdTitulo ORDER BY IdTitulo asc
      ) AS t on t.idtitulo = duplicatas.id

      WHERE duplicatas.vencimento BETWEEN '2019-01-01' AND '2019-01-31' 
    • By GustavoJacob15
      Quando eu executo esse fonte, trás o resultado triplicado
       
       
       
      SELECT CN9_NUMERO AS 'CONTRATO', CONVERT(DATE, SUBSTRING(CN9_DTINIC, 1, 4) + '-' + SUBSTRING(CN9_DTINIC, 5, 2) + '-' + SUBSTRING(CN9_DTINIC, 7, 2)) AS 'DT INICIO', CONVERT(DATE, SUBSTRING(CN9_DTFIM, 1, 4) + '-' + SUBSTRING(CN9_DTFIM, 5, 2) + '-' + SUBSTRING(CN9_DTFIM, 7, 2)) AS 'DT FIM', CN9_NUMERO AS 'CENTRO DE CUSTO', CN9_ZZEMTI AS 'ART EMITIDA', CONVERT(DATE,CN9_ZZDTVA) AS 'VALIDADE DA ART', CN9_VLATU AS 'VALOR CONTRATO', CNC_CLIENT AS 'CLIENTE', CNC_LOJACL AS 'LOJA CLIENTE', A1_NOME AS 'NOME CLIENTE', CNE_PEDIDO AS 'PEDIDO', CNE_PERC AS 'PERCENTUAL', C6_NOTA AS 'NOTA FISCAL', E1_NUM AS 'NUMERO', CNE_REVISA, CONVERT(DATE,E1_BAIXA) AS 'DT BAIXA', CNF_VLPREV AS 'VALOR PREVISTO', CNF_PARCEL AS 'PARCELA', CONVERT(DATE,CNF_DTVENC) AS 'VENCIMENTO' FROM CN9010 CN9 INNER JOIN CNC010 CNC ON CNC.CNC_NUMERO = CN9.CN9_NUMERO AND CNC.D_E_L_E_T_ ='' INNER JOIN SA1010 A1 ON CNC.CNC_CLIENT = A1.A1_COD AND CNC.CNC_LOJACL = A1.A1_LOJA AND A1.D_E_L_E_T_ ='' INNER JOIN CNF010 CNF ON CNF.CNF_CONTRA = CN9.CN9_NUMERO AND CN9.D_E_L_E_T_='' INNER JOIN CNE010 CNE ON CNE.CNE_CONTRA = CNF.CNF_CONTRA AND CNE.D_E_L_E_T_='' INNER JOIN SC6010 C6 ON C6.C6_NUM = CNE.CNE_PEDIDO AND C6.D_E_L_E_T_ ='' INNER JOIN SE1010 E1 ON E1.E1_NUM = C6.C6_NOTA AND E1.D_E_L_E_T_ ='' AND E1.E1_TIPO ='NF' WHERE CN9.D_E_L_E_T_='' AND CN9_NUMERO = '201000272' AND CN9_REVISA = '002' AND CN9.D_E_L_E_T_='' AND CNF_CONTRA = '201000272' AND CNF_REVISA = '002' AND CNF.D_E_L_E_T_='' AND CNE_CONTRA = '201000272' AND CNE_REVISA = '002' AND CNE.D_E_L_E_T_='' AND E1_PREFIXO = 'SRV' AND CNC_NUMERO = '201000272' AND CNC_REVISA = '002' GROUP BY CN9_NUMERO,CN9_REVISA,CN9_DTINIC,CN9_DTFIM,CN9_NUMERO,CN9_ZZEMTI,CN9_ZZDTVA,CN9_VLATU,CNC_CLIENT,CNC_LOJACL, A1_NOME, CNE_PEDIDO, CNE_PERC, C6_NOTA, E1_NUM, CNE_REVISA, E1_BAIXA, CNF_VLPREV, CNF_PARCEL, CNF_DTVENC  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.