Foros del Web » Programando para Internet » PHP »

Noticias Con Aludidos

Estas en el tema de Noticias Con Aludidos en el foro de PHP en Foros del Web. Hola amigos, Quiero crear una pagina de noticias en mi web. Para ello, voy a construir una bbdd con (FechaHora, Noticia, Autor, Aludidos). Aludidos sirve ...
  #1 (permalink)  
Antiguo 27/03/2009, 08:50
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 5 meses
Puntos: 1
Noticias Con Aludidos

Hola amigos,

Quiero crear una pagina de noticias en mi web.

Para ello, voy a construir una bbdd con (FechaHora, Noticia, Autor, Aludidos).

Aludidos sirve para nombrar a persona que tienen relacion con la noticia.

Despues, quiero que en la pagina perfil de esas personas (otra tabla aparte que tengo muestra sus perfiles) salga la primera linea de esa noticia, en caso de que este aludido.

Como puedo hacer esto?
Mi gran duda es: Si hay un solo aludido, creo que esta bien. Que pasa si hay 8 personas aludidas? Tengo que crear 7 campos mas en la tabla?

GraciaS!
  #2 (permalink)  
Antiguo 27/03/2009, 09:19
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Noticias Con Aludidos

No entiendo esos de aludidos mas o menos tu pagina es referida a que ??
  #3 (permalink)  
Antiguo 27/03/2009, 09:19
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: Noticias Con Aludidos

como veo la relacion es "muchos a muchos"

hay varios tipos:
1 a muchos
muchoa a 1
1 a 1
muchos a muchos

en tu caso tienes que crear una tabla aludidos:
donde cada ves que insertes una noticia en la tabla noticias, tambien deberas insertar en la tabla aludidos el Id de la noticia y el Id de cada usuario aludido...

luego para mostrar solo consultas la tabla aludidos...

con un:
select idnoticia from aludidos where iduser = $idser;

y listo!



Serian 3 tablas:
Usuarios (Idusuario, mas todos los datos que quieras ponerle..)
Noticias (Idnoticia, , mas todos los datos que quieras ponerle..)
Aludidos (Idusuario, Idnoticia) clave CONVINADA (Idusuario, Idnoticia)
ambos se pueden repetir varias veces pero no pueden repetirse juntos...
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #4 (permalink)  
Antiguo 27/03/2009, 09:41
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Noticias Con Aludidos

No comprendo esto:
"Aludidos (Idusuario, Idnoticia) clave CONVINADA (Idusuario, Idnoticia)"

Que es la clave Combinada?
  #5 (permalink)  
Antiguo 27/03/2009, 09:46
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Noticias Con Aludidos

mira lo q entendi es q hicieras una tabla relacional
es decir tus noticias y una donde combines tus noticias con los aludidos
algo asi


id_notice-----------------------------id_aludido---------------nombre
1--------------------------------------1---------------------------juanito
1---------------------------------------2--------------------------pakito


osea q pakito y juanito han sido mencionados en la noticia numoero 1

espero te sirva saludines!!
  #6 (permalink)  
Antiguo 27/03/2009, 09:50
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Noticias Con Aludidos

OK perfecto!

Ahora, una duda tecnica:

- Digamos que el ID de la noticia lo defino como Increment, es decir, que vaya subiendo solo con cada noticia.
Si en una noticia quiero incluir a 4 aludidos, no quiero que cada aludido tome un ID diferente, sino todos el mismo.

Como lo hago para insertar en la tabla relacional 1 mismo ID para los 4 Usuarios?
  #7 (permalink)  
Antiguo 27/03/2009, 09:51
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
ejemplo de tus tablas en mysql:

Código:
-- phpMyAdmin SQL Dump
-- version 2.11.6
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 27-03-2009 a las 12:57:32
-- Versión del servidor: 5.0.51
-- Versión de PHP: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de datos: `noticias`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `aludidos`
--

CREATE TABLE `aludidos` (
  `Idnoticia` int(10) NOT NULL,
  `Idusuario` int(10) NOT NULL,
  PRIMARY KEY  (`Idnoticia`,`Idusuario`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

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


-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `noticias`
--

CREATE TABLE `noticias` (
  `Idnoticia` int(10) NOT NULL auto_increment,
  `TituloNoticia` varchar(50) NOT NULL,
  `Noticia` varchar(20000) NOT NULL,
  `Autor` int(6) NOT NULL,
  `FechaHora` datetime NOT NULL,
  PRIMARY KEY  (`Idnoticia`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

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


-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `usuarios`
--

CREATE TABLE `usuarios` (
  `Idusuario` int(10) NOT NULL auto_increment,
  `Usuario` varchar(50) NOT NULL,
  PRIMARY KEY  (`Idusuario`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

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

a lo que me referia era a esto: PRIMARY KEY (`Idnoticia`,`Idusuario`)

El id de tu tabla noticias es autoincremet pero el id de tu tabla aludidos no debe serlo... y ahi no tendras problemas..

ahora al insertar la noticia en la tabla noticia.. al mismo tiempo debes insertar el Id de esa noticia que acabas de insertar en la tabla de aludidos generando 1 insert en la tabla de aludidos por cada aludido...

por ejemplo si son 4:

INSERT INTO `noticias`.`aludidos` (`Idnoticia` ,`Idusuario` ) VALUES ('4', '2');
INSERT INTO `noticias`.`aludidos` (`Idnoticia` ,`Idusuario` ) VALUES ('3', '7');
INSERT INTO `noticias`.`aludidos` (`Idnoticia` ,`Idusuario` ) VALUES ('4', '1');
INSERT INTO `noticias`.`aludidos` (`Idnoticia` ,`Idusuario` ) VALUES ('8', '2');
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)

Última edición por GatorV; 27/03/2009 a las 10:24
  #8 (permalink)  
Antiguo 27/03/2009, 09:56
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Noticias Con Aludidos

q tus aludidos tomen Id_ diferentes no lo puedes evitar por q siguen siendo registros
lo q no debe cambiar es el ID_noticia que es donde lo vas a relacionar


mm espero que me haya dado a entender saludos!!
  #9 (permalink)  
Antiguo 27/03/2009, 09:59
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: Noticias Con Aludidos

Clave convinada...

puede haber valores repetidos de ambos Idusuario y Idnoticia.. pero nunca de ambos juntos...

osea:
Idusuario, Idnoticia
si en tu Bd hay un registro: 1,2
puedes insertar: 1,3 o 4,2
pero no puedes insertar: 1,2
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #10 (permalink)  
Antiguo 27/03/2009, 10:05
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Noticias Con Aludidos

Me puedes explicar el INSERT aqui? Nunca lo he usado asi.
Ademas, si el ID en noticias es autoincrement, porque le designas un valor?

Gracias!


Cita:
Iniciado por farra Ver Mensaje
El id de tu tabla noticias es autoincremet pero el id de tu tabla aludidos no debe serlo... y ahi no tendras problemas..

ahora al insertar la noticia en la tabla noticia.. al mismo tiempo debes insertar el Id de esa noticia que acabas de insertar en la tabla de aludidos generando 1 insert en la tabla de aludidos por cada aludido...

por ejemplo si son 4:

INSERT INTO `noticias`.`aludidos` (`Idnoticia` ,`Idusuario` ) VALUES ('4', '2');
INSERT INTO `noticias`.`aludidos` (`Idnoticia` ,`Idusuario` ) VALUES ('3', '7');
INSERT INTO `noticias`.`aludidos` (`Idnoticia` ,`Idusuario` ) VALUES ('4', '1');
INSERT INTO `noticias`.`aludidos` (`Idnoticia` ,`Idusuario` ) VALUES ('8', '2');
  #11 (permalink)  
Antiguo 27/03/2009, 10:07
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Noticias Con Aludidos

INSERT INTO `noticias`.`aludidos` (`Idnoticia` ,`Idusuario` ) VALUES ('4', '2');

fue un ejemplo supongo por q el valor de tu id_noticia lo debes tomar del select hacia esa tabla
y en la tabla de
aludidos Id_noticia no es el autoincrement puesto q de esa tabla el PK es ID_aludidos
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 14:51.