Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problemas con Filtros

Estas en el tema de Problemas con Filtros en el foro de Mysql en Foros del Web. Hola amigos, a ver si puedo hacerme entender! Estoy haciendo un periodico on line y en la pagina de inicio tengo listadas noticias por orden ...
  #1 (permalink)  
Antiguo 11/03/2010, 14:00
Avatar de gabyfornia  
Fecha de Ingreso: diciembre-2004
Ubicación: USA
Mensajes: 182
Antigüedad: 19 años, 11 meses
Puntos: 0
Exclamación Problemas con Filtros

Hola amigos, a ver si puedo hacerme entender! Estoy haciendo un periodico on line y en la pagina de inicio tengo listadas noticias por orden de importancia. Es decir que en mi base de datos hay una tabla noticias con distintos campos, a continuacion se las transcribo para su comprension (le he quitdo los contenidos por razon de espacio):

CREATE TABLE IF NOT EXISTS `categorias` (
`categoriaid` int(11) NOT NULL AUTO_INCREMENT,
`nombre_categoria` varchar(150) NOT NULL,
PRIMARY KEY (`categoriaid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
--
-- Volcar la base de datos para la tabla `categorias`
--
INSERT INTO `categorias` (`categoriaid`, `nombre_categoria`) VALUES
(1, 'economia'),
(2, 'deportes'),
(3, 'policiales'),
(4, 'sociedad'),
(5, 'mundo'),
(6, 'entretenimiento'),
(7, 'opinion'),
(8, 'entrevistas'),
(9, 'sociales'),
(10, 'politica'),
(11, 'regionales');
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `importancia`
--
CREATE TABLE IF NOT EXISTS `importancia` (
`importanciaid` int(11) NOT NULL AUTO_INCREMENT,
`importancia_valor1` varchar(1) NOT NULL,
`importancia_valor2` varchar(1) NOT NULL,
`importancia_valor3` varchar(1) NOT NULL,
PRIMARY KEY (`importanciaid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Volcar la base de datos para la tabla `importancia`
--
INSERT INTO `importancia` (`importanciaid`, `importancia_valor1`, `importancia_valor2`, `importancia_valor3`) VALUES
(1, '1', '2', '3');
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `noticias`
--
CREATE TABLE IF NOT EXISTS `noticias` (
`noticiaid` int(11) NOT NULL AUTO_INCREMENT,
`titulo` varchar(150) NOT NULL,
`fecha` varchar(45) NOT NULL,
`hora` varchar(15) NOT NULL,
`piedefoto` varchar(150) NOT NULL,
`resumen` varchar(200) NOT NULL,
`desarrollo` longtext NOT NULL,
`imagen_grande` varchar(150) NOT NULL,
`imagen_chica` varchar(150) NOT NULL,
`categoriaid` int(11) NOT NULL,
`importanciaid` int(11) NOT NULL,
`panel` int(11) NOT NULL,
PRIMARY KEY (`noticiaid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
--
-- Volcar la base de datos para la tabla `noticias`
--
INSERT INTO `noticias` (`noticiaid`, `titulo`, `fecha`, `hora`, `piedefoto`, `resumen`, `desarrollo`, `imagen_grande`, `imagen_chica`, `categoriaid`, `importanciaid`, `panel`) VALUES
;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `noticiasregionales`
--
CREATE TABLE IF NOT EXISTS `noticiasregionales` (
`noticiaregionalid` int(11) NOT NULL AUTO_INCREMENT,
`titulo` varchar(200) NOT NULL,
`fecha` varchar(45) NOT NULL,
`hora` varchar(15) NOT NULL,
`piedefoto` varchar(100) NOT NULL,
`resumen` varchar(200) NOT NULL,
`desarrollo` longtext NOT NULL,
`imagen_grande` varchar(150) NOT NULL,
`imagen_chica` varchar(150) NOT NULL,
`categoriaid` int(11) NOT NULL,
`importanciaid` int(11) NOT NULL,
`panel` int(11) NOT NULL,
PRIMARY KEY (`noticiaregionalid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
--
-- Volcar la base de datos para la tabla `noticiasregionales`
--
INSERT INTO `noticiasregionales` (`noticiaregionalid`, `titulo`, `fecha`, `hora`, `piedefoto`, `resumen`, `desarrollo`, `imagen_grande`, `imagen_chica`, `categoriaid`, `importanciaid`, `panel`) VALUES
;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `paneles`
--
CREATE TABLE IF NOT EXISTS `paneles` (
`panelid` int(11) NOT NULL AUTO_INCREMENT,
`panel1` int(11) NOT NULL,
`panel2` int(11) NOT NULL,
`panel3` int(11) NOT NULL,
PRIMARY KEY (`panelid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Volcar la base de datos para la tabla `paneles`
--
INSERT INTO `paneles` (`panelid`, `panel1`, `panel2`, `panel3`) VALUES
(1, 1, 2, 3);


Ahora bien, el punto es que quiero ligar los titulos con sus paginas detalle, pero el punto es que si bien se hace por ejemplo, con noticiaid como parametro, como estas estan filtradas por orden de importancia -como lo pide el cliente- luego a la hora de vincular no sale nada. Como deberia filtrar, cual seria la sentecia SQL para que si bien en la pagina principal estan filtradas por orden de importancia y en la pagina detalle por categorias, como deberia filtrar para que los links sean correctos?
Espero se entienda la consulta! gracias
__________________
:stress: De las Aves que Vuelan me gusta el Chancho!!:si:
  #2 (permalink)  
Antiguo 13/03/2010, 06:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Problemas con Filtros

Yo no entiendo bien algunas cosas, por ej., que tengas una categoría regionales y luego añadas una tabla para las noticias regionales. Basta con que una noticia tenga la categoría regionales para pertenecer a tal grupo y no hay que crear tabla alguna más.

Esto es lo que creo que sobra:
CREATE TABLE IF NOT EXISTS `noticiasregionales` (
`noticiaregionalid` int(11) NOT NULL AUTO_INCREMENT,
`titulo` varchar(200) NOT NULL,
`fecha` varchar(45) NOT NULL,
`hora` varchar(15) NOT NULL,
`piedefoto` varchar(100) NOT NULL,
`resumen` varchar(200) NOT NULL,
`desarrollo` longtext NOT NULL,
`imagen_grande` varchar(150) NOT NULL,
`imagen_chica` varchar(150) NOT NULL,
`categoriaid` int(11) NOT NULL,
`importanciaid` int(11) NOT NULL,
`panel` int(11) NOT NULL,
PRIMARY KEY (`noticiaregionalid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
--
-- Volcar la base de datos para la tabla `noticiasregionales`
--
INSERT INTO `noticiasregionales` (`noticiaregionalid`, `titulo`, `fecha`, `hora`, `piedefoto`, `resumen`, `desarrollo`, `imagen_grande`, `imagen_chica`, `categoriaid`, `importanciaid`, `panel`) VALUES

Por otra parte, estás usando varios campos, imagino que para ordenar en las tablas importancia y paneles. Acláranos algo su función. Me ha extrañado que usas varchar, en lugar de INT, aunque harán, claro lo mismo.

CREATE TABLE IF NOT EXISTS `importancia` (
`importanciaid` int(11) NOT NULL AUTO_INCREMENT,
`importancia_valor1` varchar(1) NOT NULL,
`importancia_valor2` varchar(1) NOT NULL,
`importancia_valor3` varchar(1) NOT NULL,
PRIMARY KEY (`importanciaid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

Con esa información y una descripción más precisa de la consulta o consultas que quieres hacer, quizás podremos ayudarte mejor.

Etiquetas: filtros
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 22:08.