WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Försöker koppla ihop data i olika tabeller... (https://www.wn.se/forum/showthread.php?t=7008)

Steiner83 2005-03-29 01:08

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!

Robert 2005-03-29 09:15

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? =)

Steiner83 2005-03-29 19:33

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?

Robert 2005-03-29 19:44

Ä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?

Steiner83 2005-03-30 00:14

Alltså, jag gjorde en sista tabell där ID från alla övriga tabeller även fanns med.

eg0master 2005-03-30 08:06

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.

Robert 2005-03-30 11:26

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))

Steiner83 2005-03-30 23:05

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.";

Robert 2005-03-30 23:54

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?

Steiner83 2005-03-31 00:16

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?


Alla tider är GMT +2. Klockan är nu 01:03.

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