Kom ihåg mig?
Home Menu

Menu


Försöker koppla ihop data i olika tabeller...

 
Ämnesverktyg Visningsalternativ
Oläst 2005-03-29, 01:08 #1
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Jag har flera olika tabeller (5st) och vill sätta in data i en av tabellerna men detta skall vara kopplat till den andra 4 tabellerna.

Universitet, Program, Termin, Kurs, Bok

När jag registrerar en boks titel, författare etc i tabellen Bok vill jag samtidigt att data registreras angående kurs, termin, program och universitet så att man i efterhand kan sortera ut vilka böcker en speficik termin har osv.

Blir dock väldigt förvirrad med mina nybörjarkunskaper i PHP och MySQL.

Är tacksam för all hjälp!
Steiner83 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-29, 09:15 #2
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Rent databaslayoutmässigt så bör det vara:

1 universitet kan ha flera Program
1 Program kan ha flera kurser
1 kurs kan ha flera böcker
("Termin" är bara kosmetik enligt mig, såtillvida du inte vill koppla att vissa program endast går vissa terminer...men då kanske årtal spelar in också.) Om ett universitet har ett program som heter likadant som ett annat universitets program så betyder det kanske inte att det är samma sak...(att tänka på.)

Du måste alltså enligt ovan ha sk kopplingstabeller mellan univ och prog, mellan prog och kurs, mellan kurs och böcker.

Ex.

Universitet
==================
id namn
1 Uppsala universitet
2 Stockholms universitet


Program
==================
id Namn
1 Datablajj 5p
2 Lärarblajj 15p

Koppling_Univ_Program
==================
univ_id Prog_id
1 1
1 2
2 2


Etc..etc...

(kopplingstabellen ovan visar att Uppsala har båda kurserna medans sthlm bara har kurs med id 2.)


Eller var det ren PHP/SQL syntax dy ville ha hjälp med? =)
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-29, 19:33 #3
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Tack för svaret!
En fråga bara. Måste en kopplingstabell skrivas som ovan univ_id Prog_id, eller är det enbart kutym?

Vad jag gjort hittills i form av en "kopplingstabell" är att i princip köra in
BokID, UniID, ProgramID, TerminID, KursID, Titel författare etc, är detta väldigt onödigt eller har jag gjort rätt?
Steiner83 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-29, 19:44 #4
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Äh, namnen jag gav var bara förslag, tror inte det finns någon "naming convention" vad gäller databastabeller.

Ang din sista fråga; jag är inte riktigt med på vad du säger. Kan du utveckla lite?
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-30, 00:14 #5
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Alltså, jag gjorde en sista tabell där ID från alla övriga tabeller även fanns med.
Steiner83 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-30, 08:06 #6
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Citat:
Originally posted by Steiner83@Mar 30 2005, 00:14
Alltså, jag gjorde en sista tabell där ID från alla övriga tabeller även fanns med.
ja varför inte. Med tanke på hur data kan se ut är det väl rimligt eftersom böcker varierar på kurser och kurser varierar i program och program varierar på universitet.

Det finns ju inget rätt eller fel i databasmening utan det handlar ju om hur problemdomänen ser ut.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-30, 11:26 #7
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Hmm, är inte exakt säker på vad du menar, men om vi säger så här: om det visar sig att du lagrar samma information flera gånger i samma tabell så har du gjort fel (ok, det är väl rätt det också men att dubbellagra info ger ju inte direkt någon relationsdatabas (enligt vissa normaliseringsregler))
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-30, 23:05 #8
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Håller på att bli tokig...nybörjare som man är....

Har iaf skapat mina tabeller och ett script för att lägga in information problemet är bara att informationen aldrig riktigt lagras i tabellen.
Skrev denna förklaring på engelska på ett forum hur problemet ser ut. Vore jättetacksam om någon kunde peka ut vad som är fel....


Everytime the same result appears, 9 rows are filled even though data is only put for 1 row. No data appears and following pattern exists.

bokID continues as expected,
uni ID always null
progamID empty (but supposed to be filled)
termID empty (but supposed to be filled)
kursID always 0
title empy (but supposed to be filled)
author 1 Null apart from row 8
author 2 Null apart from row 7
author 3 Null apart from row 6
author 4 Null apart from row 5
year Null apart from row 4
edition always null
isbn null apart from row 2
publisher null apart from row 3
status null apart from row 1.


html koden:

<form action="insert_book.php" method="post">
<table border=0>
<tr>
<td>Universitet</td>
<td> <input type="text" name="uni" maxlength=50 size=30>
</td>
</tr>
<td colspan=4><input type=submit value=Tanka Upp!></td>

delar av PHP koden: inga error uppstår men inte heller får jag bekräftat mitt sista echo.



mysql_query("INSERT INTO tblbooks (year) VALUES ('$year')");
mysql_query("INSERT INTO tblbooks (publisher) VALUES ('$publisher')");
mysql_query("INSERT INTO tblbooks (isbn) VALUES ('$isbn')");
mysql_query("INSERT INTO tblbooks (status) VALUES ('$status')");

$result = mysql_query($query);
if ($result)
echo mysql_affected_rows()." bok lagrad i databasen.";
Steiner83 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-30, 23:54 #9
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
INSERT INTO tblbooks (year, publisher, isbn, status) VALUES ('$year', '$publisher', '$isbn', '$status')")


..för du ska väl lägga in alla dessa data på samma rad i tabellen?
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-03-31, 00:16 #10
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Steiner83 Steiner83 är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 23
Aha. Försökte tidigare med att lägga allt på en rad och någon nämde att jag istället skulle lägga in rad för rad vilket jag försökte göra.

Att skapa en databas för att lägga in data och titta på den är det simplaste i databas hantering men inte ens det lyckas jag med....

Problemet kvarstår dock, ingen data kommer in. Varför?
Steiner83 är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:36.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017