Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] como creo un filtro para mi tienda tipo menu

Estas en el tema de como creo un filtro para mi tienda tipo menu en el foro de PHP en Foros del Web. Buenas tardes! soy novato y tengo una tienda para vender varios articulos y funciona bien hasta envio el formulario de venta pero quiero hacer un ...
  #1 (permalink)  
Antiguo 08/08/2016, 15:05
Avatar de ccessaro  
Fecha de Ingreso: noviembre-2008
Mensajes: 11
Antigüedad: 15 años, 5 meses
Puntos: 0
Mensaje como creo un filtro para mi tienda tipo menu

Buenas tardes!
soy novato y tengo una tienda para vender varios articulos y funciona bien hasta envio el formulario de venta pero quiero hacer un filtro mostrar como un menu vertical, las tablas son 2 articulos y subcat y estan diseñadas asi:

TABLA ARTICULOS
--
-- Estructura de tabla para la tabla `articulo`
--

Código:
CREATE TABLE `articulo` (
  `id_articulo` int(11) NOT NULL auto_increment,
  `referencia` char(20) character set utf8 collate utf8_spanish_ci default NULL,
  `nombre` varchar(60) character set utf8 collate utf8_spanish_ci default NULL,
  `precio` float default NULL,
  `promo` float default NULL,
  `cuanto_hay` varchar(30) character set utf8 collate utf8_spanish_ci default NULL,
  `imagen` varchar(255) character set utf8 collate utf8_spanish_ci default 'productos/no_photo.jpg',
  `id_subcat` int(11) default NULL,
  `categoria` varchar(50) default NULL,
  `descripcion` text character set utf8 collate utf8_spanish_ci NOT NULL,
  `fecha` datetime NOT NULL default '2016-01-01 00:00:00',
  `restringido` char(2) character set utf8 collate utf8_spanish_ci default NULL,
  PRIMARY KEY  (`id_articulo`),
  UNIQUE KEY `articulo_idx` (`referencia`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=25 ;

-- 
-- Volcar la base de datos para la tabla `articulo`
-- 

INSERT INTO `articulo` VALUES (1, 'MP365', 'PELUCA AFRO DOS COLORES', 5200, 0, '461', 'MP365', 8, 'HALLOWEEN', '', '0000-00-00 00:00:00', NULL);
INSERT INTO `articulo` VALUES (2, 'PA-030', 'PELUCA RUBIA CORTA', 4500, 0, '122', 'PA-030', 8, 'HALLOWEEN', '', '0000-00-00 00:00:00', NULL);
INSERT INTO `articulo` VALUES (3, 'QISE25', 'PELUCA FRITO', 2500, 0, '53', 'QISE25', 8, 'HALLOWEEN', '', '0000-00-00 00:00:00', NULL);
INSERT INTO `articulo` VALUES (4, 'QISE-28', 'PELUCA PAYASO NIÑO', 3900, 0, '75', 'QISE-28', 8, 'HALLOWEEN', '', '0000-00-00 00:00:00', NULL);
TABLA SUBCAT

Código:
-- 
-- Estructura de tabla para la tabla `subcat`
-- 

CREATE TABLE `subcat` (
  `id_subcat` int(11) NOT NULL auto_increment,
  `nombre` varchar(60) default NULL,
  PRIMARY KEY  (`id_subcat`),
  UNIQUE KEY `subcat_udx` (`nombre`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;

-- 
-- Volcar la base de datos para la tabla `subcat`
-- 

INSERT INTO `subcat` VALUES (1, 'ACCESORIOS');
INSERT INTO `subcat` VALUES (2, 'ANTIFAZ');
INSERT INTO `subcat` VALUES (3, 'DIADEMAS');
INSERT INTO `subcat` VALUES (4, 'DISFRAZ');
INSERT INTO `subcat` VALUES (5, 'GAFAS');
INSERT INTO `subcat` VALUES (6, 'GORROS');
INSERT INTO `subcat` VALUES (7, 'MASCARAS');
INSERT INTO `subcat` VALUES (8, 'PELUCAS');
Lo que busco es hacer un filtro entre estas 2 tablas y me muestre las 5 categorias y debajo de cata categoria, las subcategorias, pero no las quiero en un combox.

este es mi codigo PHP
Código PHP:
                                        //Limitamos la busqueda con el numero de registros a mostrar.
                        
$_pagi_cuantos 12;
                    
                        
//Numero de paginas a mostrar en el panel de navegacion.
                        
$_pagi_nav_num_enlaces 10;

                        if(!empty(
$_REQUEST[filtro]))
                        {
                            
$_SESSION[where_search] = "categoria = '".$_REQUEST[filtro]."' ";
                        }

                        if(!empty(
$_REQUEST[filtro_c]))
                        {
                            
$_SESSION[where_search] = "id_subcat = '".$_REQUEST[filtro_c]."' ";
                        }

                        
// chequea si el listado trae parametros de consultas.
                        
empty($_SESSION[where_search]) ? $where "$nombre" $where $_SESSION[where_search];

 
                
$consulta=mysql_query("select * from articulo ORDER BY nombre",$conexion);
                    if (isset(
$_POST['buscar'])){
                        
$consulta=mysql_query("select * from subcat where nombre like '%".$_POST['buscar']."%'");
                    }
                    
                    
$nro_reg=mysql_num_rows($consulta);
                    
                    if (
$nro_reg==0){
                        echo 
'No se ha encontrado ningun Articulo';
                    }
                    
                    
$reg_por_pagina=12;
                    
                    
//@$nro_pagina=$_GET['num']; 
                    
                    
if (isset($_GET['num'])){
                        
$nro_pagina=$_GET['num'];
                    }else{
                        
$nro_pagina=1;
                    }
                    
                    if (
is_numeric($nro_pagina))
                        
$inicio=($nro_pagina-1)*$reg_por_pagina;
                        else
                        
$inicio=0;
                        
                    
$consulta=mysql_query("SELECT * FROM articulo ORDER BY nombre LIMIT $inicio,$reg_por_pagina",$conexion);
                    
$can_paginas=ceil($nro_reg/$reg_por_pagina);

                    
                    while(
$filas=mysql_fetch_array($consulta)){
                        
$id_articulo=$filas['id_articulo'];
                        
$imagen=$filas['imagen'];
                        
$referencia=$filas['referencia'];
                        
$nombre=$filas['nombre'];
                        
$precio=$filas['precio'];
                        
$cantidad=$filas['cantidad'];
                        
$categoria=$filas['categoria'];
            
                
?> 

Etiquetas: fecha, formulario, registro, select, sql, tabla, tienda, tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:56.