Ir para conteúdo

POWERED BY:

Arquivado

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

Jack Oliveira

[RESOLVIDO] - Fazer destaque em order by

Recommended Posts

Ola Amigos

@Omar~ @Motta

estou com uma duvida e ao mesmo tempo problemas..

Tenho uma caixa de pesquisa nela quero realizar DESTAQUE

fiz de uma maneira funciona porem quando a pesquisa se torna vazia ele não deixa em ordem alfabética

No caso do destaque ele vai destacar por valor numérico 

Ex: todos que estiver com o valor 1 ele vai aparecer em primeiro

os que estiver com o valor 2 vai aparecer em segundo e assim vai...

No meu código fiz desta maneira no caso ele me dar o destaque

apenas quando a busca e vazia que ele não deixa em ordem alfabética

	$Query = DBRead('tbl_cidade','*',"WHERE status = 'S'  
	AND titulo LIKE '%$pesquisar%' 
	OR palavra_chave LIKE  '%%$pesquisar%%' 
	OR endereco LIKE '%%$pesquisar%%' 
	OR telefone LIKE '%$pesquisar%' 
	order by  id_destaque, titulo ASC  LIMIT $inicio, $qnt_result_pg"); if (is_array($Query)) { foreach ($Query as $dados) {
	 

Na busca vazia ou seja quando não fazer nenhuma busca quero que ele aparece assim

Ex: A, B, C, D.. Etc....

Se eu colocar assim ele traz em ordem alfabética porem não traz o destaque como é para ser

	$Query = DBRead('tbl_cidade','*',"WHERE status = 'S'  
	AND titulo LIKE '%$pesquisar%' 
	OR palavra_chave LIKE  '%%$pesquisar%%' 
	OR endereco LIKE '%%$pesquisar%%' 
	OR telefone LIKE '%$pesquisar%' 
	order by  titulo, id_destaque ASC  LIMIT $inicio, $qnt_result_pg"); if (is_array($Query)) { foreach ($Query as $dados) {
	 

  Gradeço se puderem dar uma luz ai..

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Uma solução 

Order by ((case when titulo LIKE '%$pesquisar%' then 1 else 0 end) +
	      (Case when palavra_chave LIKE  '%%$pesquisar%%' then 1 else 0) +
	      (Case when endereco LIKE '%%$pesquisar%%' then 1 else 0 end) +
	      (Case when telefone LIKE '%$pesquisar%' then 1 else 0 ))

Veja também isto 

https://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html

 

 

cuidado com AND e OR no mesmo WHERE

AND (titulo LIKE '%$pesquisar%' 
	OR palavra_chave LIKE  '%%$pesquisar%%' 
	OR endereco LIKE '%%$pesquisar%%' 
	OR telefone LIKE '%$pesquisar%')

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 minutos atrás, Motta disse:

Order by ((case when titulo LIKE '%$pesquisar%' then 1 else 0 end) + (Case when palavra_chave LIKE '%%$pesquisar%%' then 1 else 0) + (Case when endereco LIKE '%%$pesquisar%%' then 1 else 0 end) + (Case when telefone LIKE '%$pesquisar%' then 1 else 0 ))

Perdoa mais não consegui entender aqui

no caso 

order by  titulo, id_destaque ASC

onde ai que eu puderei usar o id_destaque, titulo

no caso aqui eu coloco assim

 

((case when titulo  then 1 else 0 end) +
	      (Case when id_destaque then 1 else 0) +

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perdão entào peço eu , não devo ter entendido a pergunta.

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 horas atrás, Motta disse:

Perdão entào peço eu , não devo ter entendido a pergunta.

Boa tarde amigo @Motta  eu tenha a caixa de busca aqui...  na order by id_destque, titulo ASC 

Aqui ele me mostra os destaque que eu preciso, Ex:

Basico -- value="5"

Bronze  - value="4"

Prata - value="3"

Ouro - value="2"

Diamante - value="1"

Aqui no caso os valores numerico que me da os destaque conforme for a busca no site

Ex2: 

Loja1/ Diamante - value="1"

A Loja2/Diamante - value="1"

F Loja3/Diamante - value="1"

Loja4/Ouro - value="2"

G Loja5/Ouro - value="2"

M Loja6/Ouro - value="2"

Se assim vai no destaques

Mas quando eu busco faço a busca vazia sem nada ele não me mostra em ordem alfabética

Ex: A,B,C,D,F,E.....

Se eu inverte o comando order by  titulo, id_destque ASC 

 

Ele me mostra em ordem alfabética mas não mostra os destaque como é para ser....

quando pesquisar por ex por loja ele não precisa mostra em ordem alfabética 

Entendeu? rsrsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer aqui com ajuda do @Felipe Guedes Coutinho valeu mano pela ajuda ai Deus abençoa sempre você se tira um tempo para dedicar em ajudar as pessoas aqui...

 

Aqui esta a solução do meu problema 

if(empty($pesquisar)) { 
$Query = DBRead('tbl_cidade','*',"WHERE status = 'S'  
	AND (titulo LIKE '%$pesquisar%' 
	OR palavra_chave LIKE  '%%$pesquisar%%' 
	OR endereco LIKE '%%$pesquisar%%' 
	OR telefone LIKE '%$pesquisar%') 
	order by  titulo ASC  LIMIT $inicio, $qnt_result_pg");
} else {

$Query = DBRead('tbl_cidade','*',"WHERE status = 'S'  
	AND (titulo LIKE '%$pesquisar%' 
	OR palavra_chave LIKE  '%%$pesquisar%%' 
	OR endereco LIKE '%%$pesquisar%%' 
	OR telefone LIKE '%$pesquisar%') 
	order by id_destaque, titulo  LIMIT $inicio, $qnt_result_pg");
}
	
	if (is_array($Query)) { foreach ($Query as $dados) {

Obrigado @Motta pelas dicas ditas ai vou seguir o seu conselho cada vez que tenho as duvidas e alguém ajuda isso para mim e um grande prazer poder apender mais e mais com todos que queira ajudar aqui...

Valeu galera...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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