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

Cartelera de Cine

Estas en el tema de Cartelera de Cine en el foro de Bases de Datos General en Foros del Web. tabla1 = cines tabla2 = peliculas tabla3 = cartelera tabla1 = idcine tabla2 = idpelicula tabla3 = idcartelera, idcine, idpelicula cada pelicula tiene 1 o ...
  #1 (permalink)  
Antiguo 14/12/2004, 14:09
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 2 meses
Puntos: 0
Cartelera de Cine

tabla1 = cines
tabla2 = peliculas
tabla3 = cartelera

tabla1 = idcine
tabla2 = idpelicula
tabla3 = idcartelera, idcine, idpelicula

cada pelicula tiene 1 o mas cines en donde la pasan... bueno, cuando hago la consulta... me tira la misma cantidad de peliculas que cines en donde la pasan, no se si se entiende mi problema:

<?php
//CONSULTA
$tabla2 = $dbPref."peliculas";
$tabla3 = $dbPref."cartelera";
$consulta = mysql_query( "SELECT * FROM $tabla2, $tabla3 WHERE $tabla2.idpelicula = $tabla3.idpelicula ORDER BY $tabla2.pelicula" ) ;
?>
__________________
Ignacio
  #2 (permalink)  
Antiguo 14/12/2004, 14:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
supongo que tu mysql_query que te devuelve tu $consulta .. la recorres con un bucle while() o similar? (por qué no sé ve esa parte del código ..)

por cierto .. donde dice FROM .. se indica nombre de tablas sólo ..
peliculas,cartelera (no se indica la "BD" pues se trabaja sobre la BD que conectas y seleccionas al hacer tus mysql_select_db() ...)

Un saludo,
  #3 (permalink)  
Antiguo 14/12/2004, 14:36
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 2 meses
Puntos: 0
no, no es un problema de sintaxis el que tengo, es un problema de logica, algoritmo, o como gustes llamarlo...

yo agrego las peliculas en la tabla "peliculas", despues me voy a la cartelera y le asigno un horario y un cine a esa pelicula...

hay varias peliculas que tienen varios cines adonde trabaja...

y cuando yo llamo para que me muestre las peliculas... me muestra la pelicula repetidamente a la cantidad de cine donde la muestra... se entiende?
__________________
Ignacio
  #4 (permalink)  
Antiguo 14/12/2004, 14:43
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 2 meses
Puntos: 0
#
# Table structure for table 'neo_cartelera'
#

CREATE TABLE `neo_cartelera` (
`idcartelera` int(11) NOT NULL auto_increment,
`idcine` int(11) NOT NULL default '1',
`idpelicula` int(11) NOT NULL default '1',
`horarios` tinytext NOT NULL,
`precios` tinytext NOT NULL,
PRIMARY KEY (`idcartelera`),
UNIQUE KEY `idcartelera` (`idcartelera`),
KEY `idcartelera_2` (`idcartelera`)
) TYPE=MyISAM;



#
# Table structure for table 'neo_cines'
#

CREATE TABLE `neo_cines` (
`idcine` int(11) NOT NULL auto_increment,
`nombre` tinytext NOT NULL,
`direccion` tinytext NOT NULL,
`telefono` tinytext NOT NULL,
PRIMARY KEY (`idcine`),
UNIQUE KEY `idcine` (`idcine`),
KEY `idcine_2` (`idcine`)
) TYPE=MyISAM;



#
# Table structure for table 'neo_peliculas'
#

CREATE TABLE `neo_peliculas` (
`idpelicula` int(11) NOT NULL auto_increment,
`pelicula` tinytext NOT NULL,
`director` tinytext NOT NULL,
`protagonistas` tinytext NOT NULL,
`genero` tinytext NOT NULL,
`calificacion` tinytext NOT NULL,
`idioma` tinytext NOT NULL,
`duracion` tinytext NOT NULL,
`sinopsis` tinytext NOT NULL,
`foto` tinytext NOT NULL,
`encartel` int(1) NOT NULL default '1',
`recomendada` int(1) NOT NULL default '0',
PRIMARY KEY (`idpelicula`),
UNIQUE KEY `idpelicula` (`idpelicula`),
KEY `idpelicula_2` (`idpelicula`)
) TYPE=MyISAM;
__________________
Ignacio
  #5 (permalink)  
Antiguo 14/12/2004, 14:45
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 2 meses
Puntos: 0
en la tabla cartelera, se repite el idcine y el idpelicula... el idcartelera es unico...

entonces cuando relaciono, se me arma conflicto con el idcine de la tabla cartelera y con la tabla cine que contiene el idcine unico...

Saludos
__________________
Ignacio
  #6 (permalink)  
Antiguo 14/12/2004, 15:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Ok, entonces lo mejor es que lo veas en el foro de "Base de datos" .. para que te orienten sobre la sentencia SQL más correcta y/o modificación de tu modelo de datos si corresponde ...

Un saludo,
  #7 (permalink)  
Antiguo 14/12/2004, 15:22
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 2 meses
Puntos: 0
quien me puede ayudar a hacer esto?!
__________________
Ignacio
  #8 (permalink)  
Antiguo 15/12/2004, 03:03
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Cita:
Iniciado por ignacio_giri
no, no es un problema de sintaxis el que tengo, es un problema de logica, algoritmo, o como gustes llamarlo...

yo agrego las peliculas en la tabla "peliculas", despues me voy a la cartelera y le asigno un horario y un cine a esa pelicula...

hay varias peliculas que tienen varios cines adonde trabaja...

y cuando yo llamo para que me muestre las peliculas... me muestra la pelicula repetidamente a la cantidad de cine donde la muestra... se entiende?
Esto es correcto. No hay error de algoritmo ni nada por el estilo, es el resultado habitual de una consulta sql que cruza tablas. La película x se pone en 5 cines: te aparecerán 5 filas con la película x, una para cada cine en la que se ponga.
Ahora es donde viene el algoritmo de presentación de los datos para no repetir el dato de la película.
Un saludo.
__________________
Estoy contagiado de Generación-I
  #9 (permalink)  
Antiguo 15/12/2004, 12:10
Avatar de ignacio_giri  
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 2 meses
Puntos: 0
hice esta super desprolijidad: pero anda.

<?php
//CONSULTA
$tabla2 = $dbPref."peliculas";
$consulta = mysql_query( "SELECT * FROM $tabla2 WHERE encartel = 1 ORDER BY RAND() LIMIT 0,5" ) ;

while ($renglon = mysql_fetch_array( $consulta )){
$tabla1 = $dbPref."cines";
$tabla3 = $dbPref."cartelera";
$consulta2 = mysql_query( "SELECT * FROM $tabla3, $tabla1
WHERE $tabla3.idpelicula = $renglon[idpelicula]
AND $tabla1.idcine = $tabla3.idcine
" ) ;
$renglon2 = mysql_fetch_array( $consulta2 );
?>
__________________
Ignacio
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 10:21.