Como filtrar busca por tamanho e cor em php
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
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
comentários (0)
suspender
Lista de Respostas:
17/05/2012 5:22pm
(~12 anos atrás)
(~12 anos atrás)
Cara, é mais fácil vocÊ postar a estrutura de sua tabela pois está complicado de entender.
20/05/2012 10:11pm
(~12 anos atrás)
(~12 anos atrás)
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);
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);
22/05/2012 6:28pm
(~12 anos atrás)
(~12 anos atrás)
Pelo que entendi é bem simples criar os filtros
supondo campos de formulario tamanho e cor
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');
23/05/2012 8:22pm
(~12 anos atrás)
(~12 anos atrás)
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
Filtrar por tamanho:
33 - 34 - 35 - 36 - 37 - 38
39 - 40 - 41 - 42 - 43 - 44
Filtrar por Cor:
Branco - Preto - Azul
Verde - Vermelho - etc
23/05/2012 8:23pm
(~12 anos atrás)
(~12 anos atrás)
Desculpe a ignorância!!!
E obrigado pela ajuda!!
E obrigado pela ajuda!!
25/05/2012 2:05pm
(~12 anos atrás)
(~12 anos atrás)
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 .'"';
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 .'"';