Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [PHP] Weergeven speelschema films (https://forum.scholieren.com/showthread.php?t=608206)

Martin 23-09-2003 18:26

[PHP] Weergeven speelschema films
 
Ik ben momenteel bezig met een website voor een bioscoop. Ik zit nu met een klein dilemma/probleempje, hoe krijg ik mijn doel efficiënt?

Ik heb 2 tabellen, een tabel 'movies' en een tabel 'timetable'.

De tabel 'movies' in verkorte vorm:
PHP-code:

#
# Tabel structuur voor tabel `movies`
#

CREATE TABLE movies (
  
mid int(11NOT NULL auto_increment,
  
title varchar(75NOT NULL default '0',
  
image varchar(200NOT NULL default '',
  
kijkwijz int(1NOT NULL default '0',
  
PRIMARY KEY  (mid)
TYPE=InnoDB ROW_FORMAT=COMPRESSED

De tabel 'timetable' in volledige vorm:
PHP-code:

CREATE TABLE timetable (
  
timetable_id int(10NOT NULL auto_increment,
  
mid int(8NOT NULL default '0',
  
week int(2NOT NULL default '0',
  
year int(4NOT NULL default '0',
  
day0 varchar(250NOT NULL default '',
  
day1 varchar(250NOT NULL default '',
  
day2 varchar(250NOT NULL default '',
  
day3 varchar(250NOT NULL default '',
  
day4 varchar(250NOT NULL default '',
  
day5 varchar(250NOT NULL default '',
  
day6 varchar(250NOT NULL default '',
  
PRIMARY KEY  (timetable_id)
TYPE=MyISAM

'week' en 'year' in de tabel timetable worden gevuld volgens de standaard die PHP-hanteerd.

In 'day*' zitten de speeltijden, gescheiden door '+'. Die explode ik zodat ik netjes aparte tijden heb. Dat is allemaal geen probleem.

Maar nu komt mijn probleem:
---------------------------------------------------

Hoe trek ik de boel efficiënt uit de database? Er moet een navigatie komen van vorige/volgende week. Rekeninghoudend met volgende week als deze in een ander jaar valt, of als vorige week in het vorige jaar valt.

Help!

eddie 23-09-2003 18:39

Citaat:

Martin schreef op 23-09-2003 @ 19:26:
Rekeninghoudend met volgende week als deze in een ander jaar valt, of als vorige week in het vorige jaar valt.

Dat is toch niet zo moeilijk?

week > 52 => jaar++; week = 1
week < 1 => jaar --; week = 52

Het wordt pas ingewikkelder als je de datum erbij moet zetten (bijvoobeeld:
week 1: donderdag 1 januari 2004)

Manuzhai 24-09-2003 01:15

Ook met datum vanuit week is goed te doen hoor. Overigens zou ik als eerste willen opmerken dat ik je database-model suboptimaal vind. Als ik jou was zou ik een tabel screenings maken als volgt:
Code:

CREATE TABLE `screenings` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`movie` INT UNSIGNED NOT NULL ,
`day` TINYINT( 1 ) UNSIGNED NOT NULL ,
`startdate` DATE NOT NULL ,
`enddate` DATE NOT NULL ,
`starttime` TIME NOT NULL ,
PRIMARY KEY ( `id` ) ,
INDEX ( `movie` )
);

Op die manier kun je vrij gemakkelijk kijken op welke dagen tussen welke data welke films draaien.


Alle tijden zijn GMT +1. Het is nu 00:02.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.