Viikkotehtävä 6
Tehdään pienelle elokuva- ja näyttelijätietokannalle WWW-pohjainen käyttöliittymä.
Yhteiset vaatimukset:
- Tehtävä on palautettava maanantaina 7.4.2008 klo 12.00 mennessä.
- Tietojen tallentamiseen on käytettävä users.jyu.fi:ssä toimivaa SQLite-tietokantaa.
- Ongelmatilanteissa kts. myös SQLite-ohjeet.
- Tietokantakyselyt on tehtävä käyttäen PDO-rajapintaa.
- Tietokannan luontilauseet löytyvät sql_lauseet.sql-tiedostosta. Tietokannan rakenteesta löytyy myös er-kaavio ja relaatiokuva.
- Tietokannan rakennetta saa halutessaan muokata seuraavasti:
- Uusia tauluja EI saa luoda, mutta nykyisiä saa muokata.
- Viite-eheyksiä ja rajoitteita voi toteuttaa suoraan tietokannan avulla.
- Laittakaa lopulliset (mahdollisesti muokatut) SQL-lauseenne sisältävä tiedosto samaan kansioon tehtävän PHP-tiedostojen kanssa, jotta palautusskripti osaa hakea myös sen tiedoston. Itse tietokantatiedosto voi sijaita muuallakin (vrt. esim. demo6:ssa hidden-kansio).
- Huomioikaa, että kaikkien sivujen tulee pysyä mallien mukaisina ja valideina, vaikka käyttäjä syöttäisi HTML-koodia joihinkin syötekenttiin.
Muut perusvaatimukset:
- Käytetään PHP-kieltä.
- Kommentoikaa koodin oleellisimpia osia!
- Kaikkien sivujen on oltava validia XHTML 1.0 Strictiä.
- Valmiin PHP-ohjelman pitää toimia users.jyu.fi:ssä.
Taso 1
- Mallikuvat: taso1a.png, taso1b.png ja taso1c.png.
- Toteuta mallia vastaava elokuva- ja näyttelijätietokannan käyttöliittymä, jossa voidaan:
- Listata taulukkona aakkosjärjestyksessä kaikki elokuvat ja ne näyttelijät, joita elokuvissa on mukana.
- Lisätä elokuvia ja valita uudelle elokuvalle halutut näyttelijät valintalistasta.
- Näyttelijöitä voi valita 0-n kpl, eli ei ole pakko valita välttämättä yhtään näyttelijää (voi tehdä esimerkiksi mallin mukaisesti kohdan "Ei lisätä näyttelijöitä"), mutta voi myös valita vaikka kaikki näyttelijät.
- Elokuvan nimi ei saa olla tyhjä.
- Kahta saman nimistä elokuvaa ei saa pystyä lisäämään.
- Näyttelijöiden lisäämistä ei tarvitse toteuttaa, mutta näyttelijät on haettava tietokannasta.
Taso 3
- Mallikuvat: taso3a.png, taso3b.png, taso3c.png ja taso3d.png.
- Toteuta mallia vastaava elokuva- ja näyttelijätietokannan käyttöliittymä, jossa voidaan:
- Listata elokuvat (aakkosjärjestyksessä) ja niissä mukana olevat näyttelijät kaksitasoisena sisäkkäisenä listana.
- Huomioi myös ne elokuvat, joihin ei ole vielä liitetty yhtään näyttelijää.
- Listata näyttelijät (aakkosjärjestyksessä) ja ne elokuvat, joissa näyttelijät ovat mukana kaksitasoisena sisäkkäisenä listana.
- Huomioi myös ne näyttelijät, jotka eivät ole mukana missään elokuvassa.
- Lisätä elokuvia ja valita uudelle elokuvalle halutut näyttelijät valintalistasta.
- Näyttelijöitä voi valita 0-n kpl, eli ei ole pakko valita välttämättä yhtään näyttelijää (voi tehdä esimerkiksi mallin mukaisesti kohdan "Ei lisätä näyttelijöitä"), mutta voi myös valita vaikka kaikki näyttelijät.
- Elokuvan nimi ei saa olla tyhjä.
- Kahta saman nimistä elokuvaa ei saa pystyä lisäämään.
- Lisätä näyttelijöitä ja valita uudelle näyttelijälle halutut elokuvat valintalistasta.
- Elokuvia voi valita 0-n kpl, eli ei ole pakko valita välttämättä yhtään elokuvaa (voi tehdä esimerkiksi mallin mukaisesti kohdan "Ei mukana elokuvissa"), mutta voi myös valita vaikka kaikki elokuvat.
- Näyttelijän nimi ei saa olla tyhjä.
- Kahta saman nimistä näyttelijää ei saa pystyä lisäämään.
- Uuden elokuvan ja uuden näyttelijän voi lisätä samalla kerralla. Tällöin uudelle elokuvalle voi lisätä vain niitä näyttelijöitä, jotka löytyvät jo valmiiksi valintalistasta ja vastaavasti uuden näyttelijän voi kiinnittää vain niihin elokuviin, jotka löytyvät jo valmiiksi valintalistasta.
- Käyttäjä voi lisätä myös pelkästään elokuvan tai näyttelijän jättämällä toinen kenttä tyhjäksi.
- Poistoja tai päivityksiä ei tarvitse toteuttaa.
- Listata elokuvat (aakkosjärjestyksessä) ja niissä mukana olevat näyttelijät kaksitasoisena sisäkkäisenä listana.
Taso 5
- Mallikuvat: taso5a.png, taso5b.png, taso5c.png, taso5d.png, taso5e.png, taso5f.png ja taso5g.png. Katso myös kolmostason mallikuvat elokuvien ja näyttelijöiden lisäysten sekä listausten osalta.
- Toteuta ensin kolmostason vaatimusten mukainen elokuva- ja näyttelijätietokannan käyttöliittymä.
- Toteuta käyttöliittymään lisäksi elokuvien ja näyttelijöiden muokkaaminen:
- Etusivulta valitaan (klikataan sopivaa linkkiä) halutaanko muokata elokuvien tietoja vai näyttelijöiden tietoja. Mallikuva
- Seuraavaksi valitaan linkkilistasta toiminnosta riippuen se elokuva tai näyttelijä, jota halutaan muokata. Mallikuvat: elokuvavalinta ja näyttelijävalinta.
- Elokuvaa muokatessa voidaan muokata elokuvan nimeä (aiempi nimi pohjalle, uusi nimi ei saa olla tyhjä) sekä siihen liitettyjä näyttelijöitä (näyttelijät ovat valintalistassa, aiemmin liitetyt näyttelijät ovat valittuna oletuksena). Muokkauksessa tulee huomioida myös se, ettei sen jälkeen tietokannassa ole kahta saman nimistä elokuvaa. Mallikuva
- Näyttelijää muokatessa voidaan muokata näyttelijän nimeä (aiempi nimi pohjalle, uusi nimi ei saa olla tyhjä) sekä siihen liitettyjä elokuvia (elokuvat ovat valintalistassa, aiemmin liitetyt elokuvat ovat valittuna oletuksena). Muokkauksessa tulee huomioida myös se, ettei sen jälkeen tietokannassa ole kahta saman nimistä näyttelijää. Mallikuva
- Tarpeettomia päivityksiä ei saa tehdä. Ts. jos tiedoissa ei ole muutoksia, niin
tietokantaan ei saa tehdä mitään päivitystä.
- Vinkki: Talleta sessiomuuttujiin alkuperäiset arvot ja vertaa niitä muutosten jälkeen lomakkeelta saatuihin tietoihin. Tee tietokantaan kohdistuvat operaatiot tämän perusteella.
- Muokkausoperaatiossa saa halutessaan käyttää transaktioita.
- Toteuta käyttöliittymään myös elokuvien ja näyttelijöiden poistaminen:
- Etusivulta valitaan (klikataan sopivaa linkkiä) halutaanko poistaa elokuvia vai näyttelijöitä. Mallikuva
- Poistamisessa luetellaan toiminnosta riippuen joko kaikki elokuvat tai näyttelijät valintalistassa, josta käyttäjä voi valita ne elokuvat tai näyttelijät, jotka poistetaan. Mallikuvat: elokuvan tai näyttelijän poistaminen.
- Jos poistetaan elokuva, niin täytyy poistaa myös Participates-taulusta kyseiseen elokuvaan mahdollisesti liitetyt näyttelijäkytkennät. Itse näyttelijöitä ei kuitenkaan poisteta.
- Jos poistetaan näyttelijä, niin täytyy poistaa myös Participates-taulusta kyseisen näyttelijän mahdolliset kytkennät eri elokuviin. Itse elokuvia ei kuitenkaan poisteta.

Käyttäjien kommentit