Foros del Web » Programando para Internet » PHP »

crar una lista de favoritos en con bd

Estas en el tema de crar una lista de favoritos en con bd en el foro de PHP en Foros del Web. Bueno, mi duda es la siguiente. En mi web hay una serie de canales de tv, quiero que la gente pueda agregar estos canales a ...
  #1 (permalink)  
Antiguo 01/06/2010, 08:39
 
Fecha de Ingreso: mayo-2010
Mensajes: 102
Antigüedad: 14 años, 6 meses
Puntos: 1
Sonrisa crar una lista de favoritos en con bd

Bueno, mi duda es la siguiente. En mi web hay una serie de canales de tv, quiero que la gente pueda agregar estos canales a una lista propia (favoritos) para que los organicen mejor.

La base de datos es la siguiente:

CREATE TABLE IF NOT EXISTS `favoritos` (
`user` text collate latin1_general_ci NOT NULL,
`canal` text collate latin1_general_ci NOT NULL default '',
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ;

Quiero que el canal que agrega el usuario no se repita en su lista, es decir, que las celdas "usuario" y "canal" (no una, sino las dos a la vez) no se puedan repetir.

por ejemplo:
usuario: pepe
canal: tv

y que:
pepe tv
pepe tv
no se pueda hacer

pero sí que se pueda:
pepe tv
pepe tv2
pepe tv3
etc..

He estado leyendo algo relaciona con poner UNIQUE a la tabla pero eso no puede ser proque sino me bloquea hasta el usuario, es decir, el usuario solo podría poner un canal en sus favoritos...

Haber si me peuden ayudar, muchas gracias de antemano :)
  #2 (permalink)  
Antiguo 01/06/2010, 08:41
Avatar de Nekeniehl  
Fecha de Ingreso: julio-2009
Ubicación: Berlin, Alemania / Granada, España
Mensajes: 132
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: crar una lista de favoritos en con bd

Si pones los dos como calves primarias?
__________________
Antes de cambiar el mundo...dá tres vueltas por tu casa

Usa Google es tu amigo ;)
  #3 (permalink)  
Antiguo 01/06/2010, 08:42
 
Fecha de Ingreso: mayo-2010
Mensajes: 102
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: crar una lista de favoritos en con bd

voy a probar

Edito:
Estas seguro que se pueden poner dos PRIMARY?, porque no me deja...

comprueba si tengo bien el db

CREATE TABLE IF NOT EXISTS `favoritos` (
`user` varchar(50) collate latin1_general_ci NOT NULL,
`canal` varchar(50) collate latin1_general_ci NOT NULL default '',
PRIMARY KEY (`user`),
PRIMARY KEY (`canal`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ;

Última edición por xaviarg; 01/06/2010 a las 08:47
  #4 (permalink)  
Antiguo 01/06/2010, 08:48
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 16 años, 3 meses
Puntos: 87
Respuesta: crar una lista de favoritos en con bd

puedes usar UNIQUE pero con las 2 columnas en un mismo indice:

Código:
ALTER TABLE favoritos ADD UNIQUE nombre_indice (user, canal);
  #5 (permalink)  
Antiguo 01/06/2010, 08:55
 
Fecha de Ingreso: mayo-2010
Mensajes: 102
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: crar una lista de favoritos en con bd

Cita:
Iniciado por quike88 Ver Mensaje
puedes usar UNIQUE pero con las 2 columnas en un mismo indice:

Código:
ALTER TABLE favoritos ADD UNIQUE nombre_indice (user, canal);
Me va perfecto con esto.
Muchas gracias a todos!
  #6 (permalink)  
Antiguo 01/06/2010, 09:38
Avatar de Nekeniehl  
Fecha de Ingreso: julio-2009
Ubicación: Berlin, Alemania / Granada, España
Mensajes: 132
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: crar una lista de favoritos en con bd

Para definir dos claves primarias tienes que ponerlas a la vez, del palo de
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `favoritos` (
  2. `user` varchar(50) collate latin1_general_ci NOT NULL,
  3. `canal` varchar(50) collate latin1_general_ci NOT NULL default '',
  4. PRIMARY KEY (`user`,`canal`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ;

Y claro que se pueden poner dos claves primarias..Saludos
__________________
Antes de cambiar el mundo...dá tres vueltas por tu casa

Usa Google es tu amigo ;)

Etiquetas: bd, favoritos, lista
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 12:17.