Gå til innhold
Trenger du skole- eller leksehjelp? Still spørsmål her ×

IT1 - Databaser, prosjekt


Anbefalte innlegg

Nå vet jeg ikke hvor mange som har kompetanse innenfor dette området, men jeg prøver.

 

Vi har et prosjekt i IT1 hvor vi skal lage en nettside som inneholder påmelding, hvilket åpenbart krever bruk av database. Nettsiden skal være en side som tilbyr kurs, og da ønsker jeg at det skal gå an å fylle ut et skjema (form) med fornavn, etternavn, telefonnummer, kurs og vanskelighetsgrad.

 

Oppretting av databasen gikk helt fint, og jeg koblet den til Dreamweaver, hvor jeg har laget nettsiden. Jeg har også opprettet to recordset som inneholder henholdsvis kursnavn og vanskelighetsgrad. Også har jeg satt opp skjemaet med det jeg ønsker den skal inneholde. Kurs og vanskelighetsgrad er dropdownmenyer.

 

Når jeg så skal teste det ut ved å fylle ut skjemaet på siden, så kommer følgende error opp:

Cannot add or update a child row: a foreign key constraint fails (`ekma3107`.`deltaker`, CONSTRAINT `fk_deltaker_kurs` FOREIGN KEY (`idkurs`) REFERENCES `kurs` (`idkurs`) ON DELETE NO ACTION ON UPDATE NO ACTION)

 

Jeg har bare ikke greid å finne ut av hva som forårsaker denne erroren. Jeg har holdt på så lenge med å prøve å løse det nå, at jeg er i ferd med å rive av meg håret. Det kan for øvrig være verdt å nevne at det er en lokal server som er oppe og går, så problemet ligger nok ikke der.

 

Jeg vet ikke hvilken informasjon som kreves i dette tilfellet, så bare spør om jeg må tilføye mer. Jeg setter veldig stor pris på hjelp. Takk.

Lenke til kommentar
Videoannonse
Annonse

Problemet ligger i databasen din. Se i feilmeldingen din, ON UPDATE NO ACTION sier oss at ingenting skal skje når du prøver å oppdatere databasen. Løsningen blir å sette ON UPDATE til CASCADE, da burde det funke, evt. ON DELETE til CASCADE også om du ønsker muligheten til å slette elementer fra databasen.

Lenke til kommentar

Takker for svar! Har aldri rørt ON UPDATE og ON DELETE i tidligere prosjekter, så litt merkelig at jeg ikke fikk samme problem der. Jeg prøvde forslaget ditt, og fikk denne gangen denne erroren:

Cannot add or update a child row: a foreign key constraint fails (`ekma3107`.`deltaker`, CONSTRAINT `fk_deltaker_kurs` FOREIGN KEY (`idkurs`) REFERENCES `kurs` (`idkurs`) ON DELETE NO ACTION ON UPDATE CASCADE)

Lenke til kommentar

Uh, jeg satt det på fremmednøkkelen om det er det du mener. La meg forklare hvordan jeg har satt opp tabellene. Jeg bruker forresten MySQL Workbench til å sette opp databasen.

 

Den første tabellen, som jeg liker å kalle hovedtabellen, ettersom den er størst, har jeg kalt 'deltaker'. Den har fem kolonner: hovednøkkelen 'iddeltaker' (INT), 'fornavn' (VARCHAR(45)), 'etternavn' (VARCHAR (45)), 'tlfnr' (VARCHAR(8)), og fremmednøkkelen 'idkurs' (INT).

 

Den andre tabellen har jeg kalt 'kurs'. Den har to kolonner: hovednøkkelen 'idkurs' (INT) og 'kursnavn' (VARCHAR (45)).

 

Tabellene er koblet til hverandre gjennom en én-til-mange-relasjon (knapp med bilde av 1:n og en dråpeteller, som lar meg velge fremmednøkkelen 'idkurs' i tabellen 'deltaker', og deretter trykke på hovednøkkelen i tabellen 'kurs' for å skape relasjonen mellom dem, og samtidig gjøre 'idkurs' i tabellen 'deltaker' om til fremmednøkkel).

 

Når jeg er inne på deltakertabellen, kommer det også opp flere tabs. Om jeg går inn på 'Foreign Keys', ser jeg at 'fk_deltaker_kurs' ligger der, under 'Foreign Key Name', og '`ekma3107`.`kurs`' ligger under 'Referenced Table'. Lenger til høyre så jeg at det stod 'Foreign Key Options' og under der, 'On Update: <dropdownmeny>', som jeg satte til 'CASCADE', og 'On Delete: <dropdownmeny>'. Det er dette jeg har gjort.

Lenke til kommentar

Fikk det til å fungere. Det fungerte av en eller annen grunn ved å døpe om primærnøklen i kurstabellen til kursnavn, og så slette kursnavnkolonnen. Jeg gjorde det samme da jeg la til vanskelighetsgradtabellen.

  • Liker 1
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...