0

Como filtrar busca por tamanho e cor em php

criado por David em 17/05/2012 1:44pm
Estou com um site de vendas de sapatos, porém quero adicionar a opção de filtrar os produtos por tamanhos e cores, se puderem me ajudar.

a tabela no banco de dados e "isc_products_variation_options"
"vovariation" ou seja ID 2 (tamanhos)
"vovariation" ou seja ID 3 (cores)
os valores estao em "voname" (33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43) e (vermelho, verde, amarelo, preto, branco, cinza, etc)

Sou leigo em programação, estou aprendendo aos poucos.
Se for possível me darem essa dica eu agradeço

Obrigado

Lista de Respostas:

0
17/05/2012 5:22pm
(~12 anos atrás)
Marcos Regis respondeu:
Cara, é mais fácil vocÊ postar a estrutura de sua tabela pois está complicado de entender.

0
20/05/2012 10:11pm
(~12 anos atrás)
David respondeu:
tabela é "isc_products_variation_options"

o valor que deverá ser exibido está na coluna "voname"
o valor "tamnho" é a ID 2

--
-- Estrutura da tabela `isc_product_variation_options`
--

CREATE TABLE IF NOT EXISTS `isc_product_variation_options` (
`voptionid` int(11) NOT NULL AUTO_INCREMENT,
`vovariationid` int(11) NOT NULL DEFAULT '0',
`voname` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '',
`vovalue` text CHARACTER SET utf8,
`vooptionsort` int(11) NOT NULL DEFAULT '0',
`vovaluesort` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`voptionid`),
KEY `i_product_variation_options_vovariationid` (`vovariationid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=92 ;

--
-- Extraindo dados da tabela `isc_product_variation_options`
--

INSERT INTO `isc_product_variation_options` (`voptionid`, `vovariationid`, `voname`, `vovalue`, `vooptionsort`, `vovaluesort`) VALUES
(1, 1, 'Tamanho', '33', 1, 1),
(2, 1, 'Tamanho', '34', 1, 2),
(3, 1, 'Tamanho', '35', 1, 3),
(4, 1, 'Tamanho', '36', 1, 4),
(5, 1, 'Tamanho', '37', 1, 5),
(6, 1, 'Tamanho', '38', 1, 6),
(7, 1, 'Tamanho', '39', 1, 7),
(8, 1, 'Tamanho', '40', 1, 8),
(9, 1, 'Tamanho', '41', 1, 9),
(10, 1, 'Tamanho', '42', 1, 10),
(11, 1, 'Tamanho', '43', 1, 11),
(12, 1, 'Tamanho', '44', 1, 12),
(13, 1, 'Tamanho', 'P', 1, 13),
(14, 1, 'Tamanho', 'M', 1, 14),
(15, 1, 'Tamanho', 'G', 1, 15),
(16, 1, 'Tamanho', 'U', 1, 16),
(74, 2, 'Cor', 'Preto', 1, 1),
(75, 2, 'Cor', 'Cinza', 1, 2),
(76, 2, 'Cor', 'Branco', 1, 3),
(77, 2, 'Cor', 'Ouro', 1, 4),
(78, 2, 'Cor', 'Prata', 1, 5),
(79, 2, 'Cor', 'Roxo', 1, 6),
(80, 2, 'Cor', 'Vermelho', 1, 7),
(81, 2, 'Cor', 'Rosa', 1, 8),
(82, 2, 'Cor', 'Laranja', 1, 9),
(83, 2, 'Cor', 'Amarelo', 1, 10),
(84, 2, 'Cor', 'Marrom', 1, 11),
(85, 2, 'Cor', 'Azul', 1, 12),
(86, 2, 'Cor', 'Verde', 1, 13),
(87, 2, 'Cor', 'Pink', 1, 14),
(88, 3, 'Cor', 'Marfim', 1, 15),
(89, 3, 'Cor', 'Bege', 1, 16),
(90, 3, 'Cor', 'Colorido', 1, 17),
(91, 3, 'Cor', 'Vinho', 1, 18);

0
22/05/2012 6:28pm
(~12 anos atrás)
Marcos Regis respondeu:
Pelo que entendi é bem simples criar os filtros

supondo campos de formulario tamanho e cor
SELECT campos 
FROM isc_product_variation_options 
WHERE (voname='Tamanho' AND vovalue='$tamanho') AND (voname='Cor' AND vovalue='$cor');

0
23/05/2012 8:22pm
(~12 anos atrás)
David respondeu:
E como imprimir esses valores no site como link?

Filtrar por tamanho:
33 - 34 - 35 - 36 - 37 - 38
39 - 40 - 41 - 42 - 43 - 44

Filtrar por Cor:
Branco - Preto - Azul
Verde - Vermelho - etc

0
23/05/2012 8:23pm
(~12 anos atrás)
David respondeu:
Desculpe a ignorância!!!

E obrigado pela ajuda!!

0
25/05/2012 2:05pm
(~12 anos atrás)
Marcos Regis respondeu:
Cara, poste no fórum que é mais fácil de alguém lhe ajudar. Por aqui muita gente nem entra.

Adiantando, basta que no link use ?tamanho=55 ou ?cor=Amarelo

no PHP recupere assim

$cor=isset($_REQUEST['cor'])?$_REQUEST['cor']:'';
$tamanho=isset($_REQUEST['tamanho'])?intval($_REQUEST['tamanho']):'';


no SQL monte assim

$sql='SELECT campos from tabela WHERE 1=1 ';
if($cor) $sql.=' AND cor="' . $cor .'"';
if($tamanho>0) $sql.=' AND tamanho="' . $tamanho .'"';

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)