last day (14 days later) » 

12:51 AM
4
Q: Otimização de ferramenta de busca personalizada

LollipopGalera, estou criando uma página de busca que recebe, via POST, as informações de um formulário contendo vários checkbox. Vejam abaixo que há várias sequências de resultados e está marcado em laranja uma delas como exemplo: Quando eu clicar em procurar, as informações são enviadas para uma pá...

 
Alguém pode ajudar????
É um exemplo para o caso da imagem acima, pois perceba que chave e segredo estão selecionados!
@QMechanic73, EDITADO!
@QMechanic73, o problema dessa minha pergunta é exatamente isso: ter que "prever" os requests. E como são muitas possibilidades, fica extenso e robusto. E sobre sua pergunta...!isset($_POST['residencial']) quer dizer sobre o caso da imagem acima, não há RESIDENCIAL, mas há COMERCIAL checado! Entende?
O problema man é que seria fácil se não houvesse a combinação das categorias. Como definiria em um foreach isso: chave-co-ele(chave comercial e elétrico)? Penso que deveria haver alguma forma de unir isto ou pensar em outra forma de formar essas categorias.
Todos os issets ficam !, menos o comercial, aí ponho dentro de uma array: $data = array( '1' => $_POST['comercial'] );
O problema é que vocês não estão entendendo que estou utilizando o resquest post para formar um valor para $var1. Só quero saber como faço a soma comercial + mecanico + chave + segredo, sem utilizar muitos códigos. Essa soma vai determinar lá no switch ($var1). Como diferencio quem é quem quando se tem subcategoria? Veja o update que fiz! Está claro.
 
@Lollipop Seria algo assim: pastebin.com/6kB56ksg ? Acho que entendi +- o que você quer fazer..
@Lollipop Veja isso: pastebin.com/iWsGwWTx
 
Isso awe @QMechanic73, você entendeu! 50% concluído!
 
@Lollipop o/ Agora eu não sei criar o case '...' direito :/
 
kkkkkkkkkkkkkkk
Já to fazendo, mas queria elimina-lo '-'
@QMechanic73, com removo o último +??
Exemplo: comercial+mecanico+chave+ FICAR > comercial+mecanico+chave
 
12:51 AM
Isso é adicionado no foreach.
@Lollipop Supondo que no case tenha comercial + mecanico + chave + segredo, na variável $data é para adicionar $_POST['comercial'], $_POST['mecanico'],$_POST['chave'] e $_POST['segredo']?
 
Não! kkkk já resolvi. Tem que ficar:

case 'comercial+mecanico+chave+segredo':
$data = array(
'1' => 'chave-co-mec',
'2' => 'segredo-co-mec'

);
break;
sabe retirar o último '+' ??
 
É realmente necessário ter que tirar o último + ? não dá para fazer assim: case 'comercial+mecanico+chave+segredo+': ?
 
dar, mas como já tenho tudo pronto! e são quase 50 case '-', VAI FICAR RUIM acresentar
 
Vou ver se com implode da certo...
 
ok.
vou perguntar no over, acho que não tem iso
 
12:59 AM
Nem precisa eu acho...
 
Não ajudaria alguém?
Se você respondesse?
:)
 
Iriam falar para usar implode ou explode. =)
 
Ok..Mas como nesse caso?
Percorrendo um foreach?
E awe? nada, amigão?
 
wait... Vou ali pegar pegar um café...
 
kk
lz, man
blz
 
1:10 AM
Veja:
$itemsArr = [];

foreach ($_POST['items'] as $item) {
if(isset($item)){
array_push($itemsArr, $item . '');
}
}
$var1 = implode('+', $itemsArr);
echo $var1;
 
E nesse caso:

$items = "";
foreach ($_POST['termos'] as $item) {
if(isset($item)){
$items = $items . $item . '+';
}
}
 
Vou ver se consigo isso. Mas porque não usa um array?
 
seguinte erro: array_push() [function.array-push]: First argument should be an array in
implode() [function.implode]: Invalid arguments passed in
 
Você tem que passar um objeto array em implode('+', suaArray)
 
consegui kkk
como sou burro '-'
$items = "";
foreach ($_POST['termos'] as $item) {
if(isset($item)){
$items = $items . $item . '+';

$resultado = substr($items,0,-1);

}
}
 
1:23 AM
Substr o/
 
kkkkkkkkk
 
Eu já estava a tentar passar explode pra implode um diacho a 4 aqui haha.
 
kkkkkkkkkkkkkkkkkkkkk
imagino , man
 
Valeu pelo voto. =y
 
hehehe, você mereceu! ei porque aparece esses on:

comercial+mecanico+chave+on+on+segredo
descobri kk
 
1:30 AM
Ai é rápido. o/
 
^^
esse case ta fogo
faltam várias combinações ainda
Não consegue automatizar isso pra ganhar os 200 boundy?
 
hahahah Eu estava pensando em fazer isso por só tenho 3 cases aqui.
 
switch ($resultado){

case 'comercial':
$data = array(
'1' => 'comercial'
);
break;


case 'residencial':
$data = array(
'1' => 'residencial'
);
break;


case 'mecanico':
$data = array(
'1' => 'mecanico'
);
break;


case 'eletronico':
$data = array(
'1' => 'eletronico'
);
break;


case 'chave':
$data = array(
'1' => 'chave'
);
break;


case 'segredo':
$data = array(
'1' => 'segredo'
);
break;


case 'display':
$data = array(
'1' => 'display'
);
break;


case 'led':
$data = array(
'1' => 'led'
 
@Lollipop Não sei se é algo errado aqui mas....
 
hum
 
1:42 AM
deu 40.319 combinações possíveis.
kkkkkkkkkkkkkk
 
como descobriu?
acho que não é isso tudo
 
Selecione todos os checkboxes e envie.
Deve ter dado algo errado eu acho.
 
40319 '-'
 
kkkkkkkkkkk
 
ta errado
sabe porque?
por que não é sequencial
tipo...
 
1:47 AM
Ainda não sei..
 
comercial+mecanico+chave+segredo+display+led

Não pode ser:

mecanico+chave+segredo+display+led+comercial

ou qualquer outra ordem
Tudo é limitado a:

Comercial(categoria)
-Mecânico(sub categoria)
--Chave(sub)
--Segredo(sub)
--Display(sub)
--Led (sub)

-Eletrônico(sub categoria)
--Chave(sub)
--Segredo(sub)
--Display(sub)
--Led (sub)

Residencial(categoria)
-Mecânico
--Chave
--Segredo
--Display
--Led

-Eletrônico
--Chave
--Segredo
--Display
--Led
 
Deve estar certo mesmo, supondo que temos oito combinações possíveis, faça as contas: 1*2*3*4*5*6*7*8
 
Isso significa se eu selecionar, por exemplo, comercial+mecanico+chave+segredo+display+led

EU TEREI AS SUBCATEGORIAS:

case 'comercial+mecanico+chave+segredo+display+led':
$data = array(
'1' => 'chave-co-mec',
'2' => 'segredo-co-mec',
'3' => 'display-co-mec',
'4' => 'led-co-mec'




);
break;
 
Da algo em torno de 40.320
 
Entendeu?
 
1:51 AM
Sim..
 
então a sua função não condiz com essa lógica e não á 40...mil combinações
 
Talvez.. Deixa eu ver se entendi, se temos no case 'comercial+mecanico+chave+segredo+display+led ' o primeiro item, no caso o "comercial" sempre tem que ser a categoria correto? e o segundo item nesse caso o "mecanico" deve ser sempre uma sub-categoria isso? o resto dos items não precisam estar em ordem?
 
Veja isso:

comercial tem 6 produtos
Sendo 4 mecanicos e 2 elétricos
Cada um dos 4, do mecanico, são: chave, segredo, display e led

Então no case:

case 'comercial+mecanico+chave+segredo+display+led':
$data = array(
'1' => 'chave-co-mec',
'2' => 'segredo-co-mec',
'3' => 'display-co-mec',
'4' => 'led-co-mec'




);
break;

aparecerá SOMENTE os 4 produtos citados por último entendeu? Isso não se deve se preocupar, pois o:

$args = array(
'posts_per_page' => -1,
'tax_query' => array(
'relation' => 'AND',
 
2:06 AM
Tirando os dois primeiros itens, a categoria ("comercial") e subcategoria ("mecanico") o número de itens pode variar certo? exemplo case 'comercial+mecanico+chave' ou case 'comercial+mecanico+chave+segredo' ou case 'comercial+mecanico+chave+segredo+display' ou case 'comercial+mecanico+chave+segredo+display+led'.
 
ISSSOOOOOOOOOOOOOOOO
e o pior...ainda tem elétricos '_'
comercial+eletrico+......
mesma coisa!
 
arghhhhhhh
 
kkk
temos que automatizar esses case
'-'
 
Vou tentar fazer isso... não sei se consigo =/
o/
 
blz, man
 
2:19 AM
Você tem uma sub categoria "Eletrônico" e no final você tem outra, é isso mesmo?
 
para comercial e residencial, sim
Comercial(categoria)
-Mecânico(sub categoria)
--Chave(sub)
--Segredo(sub)
--Display(sub)
--Led (sub)

-Eletrônico(sub categoria)
--Chave(sub)
--Segredo(sub)
--Display(sub)
--Led (sub)

Residencial(categoria)
-Mecânico
--Chave
--Segredo
--Display
--Led

-Eletrônico
--Chave
--Segredo
--Display
--Led
 
A tá. quando cases você já tem?
 
não contei, mas são muuuitos
dar umas 16 mil linhas no sublime
'-'
aliaass
 
Sério?
 
1.600,00
^^
 
2:28 AM
Você tem todos os valores que é para serem inseridos na variável data?
Tipo:
$data = array(
'1' => 'chave-co-mec',
'2' => 'segredo-co-mec',
'3' => 'display-co-mec');
 
quase todas as sequencias
 
Isso: chave-co-mec, segredo-co-mec e display-co-mec, todos?
 
definidos ja, mas nao tenho todasas sequencias
existe um padrao que acho que seja a chave de tudo
residencial+mecanico sempre sera: ALGUMACOISA-re-mec
residencial+eletronico sempre sera: ALGUMACOISA-re-ele
 
Não faço a mínima ideia de como fazer todas essas combinações.. =/
 
=/
 
2:54 AM
Ainda ai?
Veja pastebin.com/ega9R14W são todas as combinações de comercial+mecanico+segredo+display+chave+led. Elas são válidas?
 
3:13 AM
@Lollipop Deve ter outro jeito para isso, acho que compensa mais pensar em uma alternativa ao invés de fazer esse tanto de cases e arrays.
 
 
3 hours later…
6:26 AM
Caros, se me permitem, @Lo Lollipopi
@Lollipop
Você poderia antes de mais nada descrever aqui, ou na própia pergunta, a regra de negócio da sua busca ? Ao que me parece, pegando o exemplo mais completo, você teria a hierarquia:
Comercial(categoria)
-Mecânico(sub categoria)
--Chave(sub)
--Segredo(sub)
--Display(sub)
--Led (sub)
Você quer poder pesquisar por Comercial (aqui ele faria a consulta de tudo que é comercial) ou Mecânico (aqui ele faria a consulta de tudo que é mercânico) ou Chave|Segredo|Display|Led (pode até ser mais de um ao mesmo tempo) ?
OU ENTÃO, OLHANDO PELA IMAGEM, IMAGINEI A SITUACAO:
conforme o usuario seleciona entre uma opcao Comercial ou Residencial, ele pode ir refinando a busca até o nível que ele quiser ?
de qualquer maneira, seria bom também você descrever a estrutura das suas tabelas.
 
 
6 hours later…
12:40 PM
mano?
ta on?
 
1:27 PM
@Lollipop Eu? sim.
 
1:38 PM
mano, to na mesma
O cara me respondeu e me retornou isso:

Array
(
[0] => comercial
[1] => residencial
)
Array
(
[0] => comercial+mecanico
[1] => comercial+eletronico
[2] => residencial+mecanico
[3] => residencial+eletronico
)
Array
(
[0] => comercial+mecanico+chave
[1] => comercial+eletronico+chave
[2] => residencial+mecanico+chave
[3] => residencial+eletronico+chave
)
O que vou fazer com isso kkkk
parece ser bom
 

last day (14 days later) »