Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

evandropf

select nao esta ordenando.

Recommended Posts

Bom dia tenho uma select em um banco de dados que gostaria de modificar a ordenação dos dados,

porem nao esta funcionando a parte da ordenação, esta listando mas nao ordenando.

paginas php.

 

como esta:

select
codigo,
descricao
FROM
".BD_RETAG.".pocket_comandas
WHERE
nroloja='".$_SESSION["LOJA"]["NROLOJA"]."' and
codigo=".$_GET["comanda"]."

 

como preciso:

SELECT
pocket_comandas.codigo,pocket_comandas.descricao,pocket_pedidos.status
FROM
".BD_RETAG.".pocket_comandas
LEFT JOIN ".BD_RETAG.".pocket_pedidos ON pocket_pedidos.codigo_comanda=pocket_comandas.codigo
WHERE pocket_pedidos.status IS NULL or pocket_pedidos.status!='fechado'
AND pocket_comandas.nroloja='".$_SESSION["LOJA"]["NROLOJA"]."' and
pocket_comandas.codigo=".$_GET["comanda"]."
GROUP BY pocket_comandas.codigo,pocket_comandas.descricao,pocket_pedidos.status
ORDER BY pocket_pedidos.status='emaberto'desc,pocket_comandas.codigo

 

porem lista mas nao ordena. Alguem teria uma luz de onde esta errado ?

 

Obrigado
Evandro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não existe igualdade na clausula ORDER BY , o que pretendia ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta: seguinte eu tenho duas tabelas

tabela 1 apenas comandas.(campo id, nome_comanda)

tabela 2 comanda em uso status(em uso, utilizada, null)

 

no sql 1 = apenas lista as comandas (todas) independente se estão em uso ou nao.

 

no sql2 = faço a mesma lista porem pego apenas as comandas (null=vazias, e canceladas)

 

assim ordeno as comandas na tela primeiro as comandas em uso e depois as comandas vazias esperando abertura.

 

att,

Evandro

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara vc pode dar um order by da chave estrangeira da tabela 2 em 1 (vai ordenar na ordem de status) e passa um segundo parâmetro para ser o segundo ordenador(ex data), ou você seleciona as que tem a comanda com status null (detalhe vc não tem um status cancelado pelo jeito, certo?) e manda ordenar pelo id, data de criação, etc. Você tem um pouco de confusão nessa sua logica, ou foi mal explicado, se nenhuma das resposta ajudou, por favor explica um pouco melhor, abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

o sql em si esta funcionando no sql dbx,

 

o problema e que nao estou sabendo colocar no php...

 

ate funciona..no php. mas nao traz ordenado como no select direto no banco.

 

/*SQL2:*/
SELECT pocket_comandas.codigo,pocket_comandas.descricao,pocket_pedidos.status
FROM pocket_comandas
LEFT JOIN pocket_pedidos ON pocket_pedidos.codigo_comanda=pocket_comandas.codigo
WHERE pocket_pedidos.status IS NULL or pocket_pedidos.status!='fechado'
GROUP BY pocket_comandas.codigo,pocket_comandas.descricao,pocket_pedidos.status
ORDER BY pocket_pedidos.status='emaberto'desc,pocket_comandas.codigo;
cod | descritivo | status
1 Comanda 1 emaberto
5 Comanda 5 emaberto
10 Comanda 10 emaberto
18 Comanda 18 emaberto
100 Comanda 100 emaberto
1 Comanda 1
2 Comanda 2
3 Comanda 3
4 Comanda 4 cancelado
6 Comanda 6
7 Comanda 7
8 Comanda 8
9 Comanda 9
11 Comanda 11
12 Comanda 12
13 Comanda 13
em branco na frente e null

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vê como isso funciona...


SELECT pc.codigo,pc.descricao,pc.status

FROM pocket_comandas pc

LEFT JOIN pocket_pedidos ON pocket_pedidos.codigo_comanda=pocket_comandas.codigo

WHERE pocket_pedidos.status IS NULL or pocket_pedidos.status!='fechado'

GROUP BY pocket_comandas.codigo,pocket_comandas.descricao,pocket_pedidos.status

ORDER BY pocket_pedidos.status desc,pocket_comandas.codigo;

Compartilhar este post


Link para o post
Compartilhar em outros sites

anderluz: eu fiz dessa forma que vc falou retirei o a ordenação em primeido de (pocket_pedidos.status='emaberto'desc), renomei as tabelas... ficou apenas 1 incoveniente que nesse caso, as mesas canceladas vao aparecer em primeiro e depois as em aberto...mas tudo bem..

e

mesmo assim o php continua ordenando na sequencia de comandas desconsiderando a ordenação que eu informo no sql.

 

SELECT pocket_comandas.codigo,pocket_comandas.descricao,pocket_pedidos.status

FROM pocket_comandas

LEFT JOIN pocket_pedidos ON pocket_pedidos.codigo_comanda=pocket_comandas.codigo

WHERE pocket_pedidos.status IS NULL or pocket_pedidos.status!='fechado'

GROUP BY pocket_comandas.codigo,pocket_comandas.descricao,pocket_pedidos.status

ORDER BY pocket_pedidos.status desc,pocket_comandas.codigo;

 

 

eu acho que estou fazendo errado na codificação do php para nao interpretar a parte final do meu código.

 

esta assim:

 

SELECT

pocket_comandas.codigo,pocket_comandas.descricao,pocket_pedidos.status

FROM

".BD_RETAG.".pocket_comandas

LEFT JOIN ".BD_RETAG.".pocket_pedidos ON pocket_pedidos.codigo_comanda=pocket_comandas.codigo

WHERE pocket_pedidos.status IS NULL or pocket_pedidos.status!='fechado'

AND pocket_comandas.nroloja='".$_SESSION["LOJA"]["NROLOJA"]."' and

pocket_comandas.codigo=".$_GET["comanda"]."

GROUP BY pocket_comandas.codigo,pocket_comandas.descricao,pocket_pedidos.status

ORDER BY pocket_pedidos.status,pocket_comandas.codigo

 

 

SELECTpocket_comandas.codigo,pocket_comandas.descricao,pocket_pedidos.statusFROM".BD_RETAG.".pocket_comandasLEFT JOIN ".BD_RETAG.".pocket_pedidos ON pocket_pedidos.codigo_comanda=pocket_comandas.codigoWHERE pocket_pedidos.status IS NULL or pocket_pedidos.status!='fechado'AND pocket_comandas.nroloja='".$_SESSION["LOJA"]["NROLOJA"]."' andpocket_comandas.codigo=".$_GET["comanda"]."GROUP BY pocket_comandas.codigo,pocket_comandas.descricao,pocket_pedidos.statusORDER BY pocket_pedidos.status,pocket_comandas.codigo

alguém sabe oque estaria errado no select acima ?

o php interpreta lista os dados mas nao ordena conforme o order by ???

 

att,

Evandro

 

 

modifiquei o codigo para o exemplo abaixo:SELECTpocket_comandas.codigo,pocket_comandas.descricao,pocket_pedidos.statusFROM ".BD_RETAG.".pocket_comandas LEFT JOIN ".BD_RETAG.".pocket_pedidos ON pocket_pedidos.codigo_comanda=pocket_comandas.codigoWHERE pocket_pedidos.status IS NULL or pocket_pedidos.status!='fechado'AND pocket_pedidos.dataproc= CURRENT_date()AND pocket_comandas.nroloja='".$_SESSION["LOJA"]["NROLOJA"]."' andpocket_comandas.codigo=".$_GET["comanda"]."ORDER BY pocket_pedidos.status desc,pocket_comandas.codigo

agora esta retornando esse erro:

 

Erro: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY pocket_pedidos.status desc,pocket_comandas.codigo' at line 10

 

 

alguém saberia me dizer onde estaria o erro ?

 

 

bom dia, alguém poderia me ajudar com o erro acima ?

 

 

up

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.