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 avelar.avelar
      Turma esta dando erro neste item em negritom, estou tentando , pegar um pdf que esta convertido em base64 e mandando ele gerar o arquivo e gravar numa pasta determinada com um nome, alguem poderias me ajudar? urgente.  Ovbrigado
       
       
      TrablheController.php
       
      public function post(Request $request)
          {
              $rules = [
                  'nome' => 'required|string',
                  'data_nascimento' => 'required|date',
                  'email' => 'required|string',
                  'cpf' => 'required|string',
                  'curriculo' => ['required','mime:/application\/(?:docx||pdf\+xml);base64,.+/'],
              ];
       
              $validator = Validator::make(request()->json()->all(), $rules);
       
              if ($validator->fails()) {
                  return response()->json($validator->errors()->toArray(), 422);
              }
       
              $vagas = Vagas::select('id')->firstOrFail();
       
              $data = $request->json()->all();
       
              $fileB64 = isset($data['curriculo']) ? $data['curriculo'] : false;

              unset($data['curriculo']);
       
              $trabalheconosco = new TrabalheConosco;
       
              foreach (array_keys($rules) as $key) {
                  if (array_key_exists($key, $data)) {
                      $trabalheconosco->{$key} = $data[$key];
                  }
              }
              $trabalheconosco->save();
       
              if ($fileB64) {
                  $trabalheconosco->curriculo = $this->saveFileB64($fileB64, 'images/curriculos', $trabalheconosco->id);
                  $trabalheconosco->save();
              }
       
              $vagas->TrabalheConosco()->save($trabalheconosco);
       
              return response()->json(['data' => $trabalheconosco->toArray()], 201);
          }
       
      Controller.php

          public function saveFileB64($fileB64, $path = '', $id = null): string
          {
              $chunkf = explode(';base64,', $fileB64, 2);
              $chunkf[0] = str_replace('data:', '', $chunkf[0]);
              if (!isset(self::MIMES[$chunkf[0]], $chunkf[1])) {
                  return null;
              }
              $extension = self::MIMES[$chunkf[0]];
              $fileBin = base64_decode($chunkf[1]);
              $time = time();
              $pathName = null;
              do {
                  $pathName = "$path/{$id}_{$time}_"
                      . abs(crc32(uniqid('f', true))) . $extension;
              } while ($this->storage->exists($pathName));
              $this->storage->put(file_put_contents($pathName, $fileBin));
              return $pathName;
          }
       
      ERROR NO INSOMNIA ( 500 INTERNAL SERVER ERROR)
    • By Webster Moitinho
      Estou tentando fazer o controle de acesso do meu site. Para tanto criei duas tabelas:
      Stat (Armazena cada sessao dos usuários
      Estrutura da tabela `stat`
      CREATE TABLE `stat` ( `id_stat` int(11) NOT NULL, `navegador` varchar(85) NOT NULL, `usuario` int(11) NOT NULL, `cep` varchar(7) NOT NULL, `ip_visitante` varchar(15) NOT NULL, `sessao` varchar(72) NOT NULL, `pais` varchar(30) NOT NULL, `estado` varchar(30) NOT NULL, `cidade` varchar(50) NOT NULL, `latitude` decimal(11,5) NOT NULL, `longitude` decimal(11,5) NOT NULL, `ip_meuservidor` varchar(72) NOT NULL, `hora_req` time NOT NULL, `origem` varchar(175) NOT NULL, `idioma` varchar(50) NOT NULL, `SERVER_ADMIN` varchar(90) NOT NULL, `servidor` varchar(90) NOT NULL, `visitada` longtext CHARACTER SET utf8 NOT NULL, `registro` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- Indexes for table `stat` ALTER TABLE `stat` ADD PRIMARY KEY (`id_stat`); -- AUTO_INCREMENT for table `stat` ALTER TABLE `stat` MODIFY `id_stat` int(11) NOT NULL AUTO_INCREMENT; sub_stat (Para armazenar as páginas visitadas e as interações com o cliente:
      CREATE TABLE `sub_stat` ( `id_substat` int(11) NOT NULL, `sessao` varchar(72) NOT NULL, `hora_req` time NOT NULL, `origem` varchar(85) NOT NULL, `visitada` varchar(85) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- Indexes for table `sub_stat` ALTER TABLE `sub_stat` ADD PRIMARY KEY (`id_substat`); -- AUTO_INCREMENT for table `sub_stat` ALTER TABLE `sub_stat` MODIFY `id_substat` int(11) NOT NULL AUTO_INCREMENT; O desejado portanto, seria que quando o usuário entrasse na página, o script localizasse a sessão do usuário, buscaria a sessão na tabela stat, caso não existisse, iria inserir o registro tanto na tabela stat, quanto na tabela sub_stat. Se existisse a sessão na tabela stat, então somente haveria inserção dos registros na tabela sub_stat. Eu não estou conseguindo executar a segunda consulta, que vai popular a tabela sub_stat.
       
      Meu código está assim:
       
      $sql = "SELECT sessao FROM stat WHERE sessao = '$sessao'"; $prepara = $PDO->prepare( $sql ); $prepara->execute(); $login_check = $prepara->rowCount(); if($login_check < 1){ $sql = "INSERT INTO `stat` (`id_stat`, `navegador`, `usuario`, `cep`, `ip_visitante`, `sessao`, `pais`, `estado`, `cidade`, `latitude`, `longitude`, `ip_meuservidor`, `hora_req`, `origem`, `idioma`, `servidor`, `visitada`, `registro`) VALUES (NULL, '$navegador', '$usuario', '$cep', '$meuip', '$sessao', '$pais', '$estado', '$cidade', '$lat', '$long', '$ip', '$hora_req', '$origem', '$idioma', '$servidor', '$visitada', '$registro')"; $compile = $PDO->prepare($sql); $vai = $compile->execute(); $sql2 = "INSERT INTO `sub_stat` (`id_substat`, `sessao`, `hora_req`, `origem`, `visitada`) VALUES (NULL, '$sessao', '$hora_req', '$origem', '$visitada'"; $compile2 = $PDO->prepare($sql2); $vai = $compile2->execute(); } else { $sql = "INSERT INTO `sub_stat` (`id_substat`, `sessao`, `hora_req`, `origem`, `visitada`) VALUES (NULL, '$sessao', '$hora_req', '$origem', '$visitada'"; $compile = $PDO->prepare($sql); $vai = $compile->execute(); }  
    • By GuiPetenuci
      Boa tarde,
      Estou com um problema e estou ficando louco, ja li praticamente todos as respostas de View de SQL Server no Stack Overflow e a maioria da documentacao da MSFT
       
      Tenho uma view que faz algumas queries malucas que o cliente precisa, mas ela nao retorna o resultado justo, e se eu pegar o codigo e fazer uma query simples com o codigo, o resultado è ok.
       
      Codigo da View
      SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /****** Object:  View [QEHS].[V_FactMonitorings25261gui]    Script Date: 11/07/2019 16:24:53 ******/ CREATE view      [QEHS].[V_FactMonitorings25261gui] as      with     Plants as      (         select distinct              [plant-id]          from              [QEHS].[Fact-Monitorings-H&S]                 ) ,      MIDs as      (         select mid          from          (             values                 ( 'MON.02.25 Total number of LTA free days (calendar days)')                 ,( 'MON.02.26 Total number of TRI free days (calendar days)')          ) as x(mid)      ),      PlantList      AS     (         select              a.date,              b.[plant-id],              c.mid         from              QEHS.Calendar_Gen A              cross join              plants b                 cross join mids c         where              year(a.date) >= 2011     ),      help1 as      (         SELECT              p.date,              p.[plant-id],             p.mid,              t.value,             (             case                  when (year(p.date) = year(getdate()) and month(p.date) = month(getdate())) then                      day(getdate())                  else                      iif(t.value is not null, 0, day(eomonth(p.date)))                             end                           ) Days,              cast(isnull(cast(t.value as bit),0) as integer) reset          FROM              PLANTLIST p              left join              [QEHS].[Fact-Monitorings-H&S] T             on             (                  p.date = t.date and                   p.[plant-id] = t.[plant-id] and                   p.mid = t.[monitoring-id]              )                  ),      help2 as      (         select              date,              [plant-id],              mid,              value,              days,              reset,             formatmessage('%s%s%d', [plant-id], mid,sum(reset) over                  (                      partition by  [plant-id], mid                      order by  date, [plant-id], mid                 )             ) grp         from             help1          where              year(date) >= (select year(min(date)) from [QEHS].[Fact-Monitorings-H&S])             ),     help3 as      (         select              date,              [plant-id],              mid,              value,              days,              first_value(value) over (partition by grp order by date, [plant-id], mid) fullvalue         from              help2      )      --      select          date,          [plant-id],          mid,          isnull(a.Value,              fullvalue +sum(days) over              (                  partition by [plant-id], mid, fullvalue                   order by  mid, date, [plant-id]                  rows between unbounded preceding and current row             )          ) total     from          help3 a          GO a view retorna assim:

       
      Agora se eu pegar e fazer a query "na mao", retorna assim, que è o justo:

       
      Agora, porque na view retorna um e a query retorna outro? o.o
    • By CharlieAldrin
      Estou tentando fazer o seguinte codigo, onde ele pega alguns dados e salva eles em uma tabela, porém o INSERT não está salvando os dados, tem algo errado? 
       
      <?php
      session_start();
      include('config.php');
      //  id1
      // recebe pela url
      $id_busca_ajuda = $_GET['id']; 
      // id2
      // recebe pela url
      $nick_busca_ajuda = $_GET['nick']; 
      $id_ajudante = $_SESSION['usuario'];
      // nick 2
      $database = new Database();
      $db = $database->getConnection();
      $query = $db->prepare("SELECT nick_ajudante FROM sala_ajudante WHERE id_usuario_ajudante=".$_SESSION['usuario']);
      $runAjudante = $query->execute();
      $linha = $query->fetch(PDO::FETCH_ASSOC); 
      $nick_ajudante = $linha['nick_ajudante']; 
      // linha que não estpa funcionando
       $query =  $db->prepare("INSERT INTO conversa ('nick1', 'nick2', 'id1', 'id2', 'online') VALUES ('".$nick_busca_ajuda."' , '".$nick_ajudante."' , '".$id_busca_ajuda."' , '".$id_ajudante."' , '1');"); 
      $runConv = $query->execute();

      ?>
    • By manoaj
      Boa tarde pessoal!
      Tenho As seguintes tabelas no meu banco:
       
      Tabela->clientes(Essa tabela guarda os clientes)
      Tabela-> Produtos (Essa tabela guarda os  produtos)
      Tabela -> Tamanhos (Essa tabela guarda os tamanhos e os preços)
      Tabela->Relação de tamanho (Essa tabela guarda a relação dos tamanhos que cada produto pode ter)
      Tabela-> Pedidos (Essa tabela guarda o pedido do cliente com tamanho e quantidade)
       
      E o problema e o seguinte: Como q eu faço uma seleção nessas tabelas para saber o valor total do pedido do meu cliente com base no tamanho e quantidade escolhida?
×

Important Information

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