webForumDet fria alternativet

Relationstabellsfråga.

ASPur ASP

25 svar · 587 visningar · startad av solbulle

Medlem sedan mars 20015 287 inlägg
Frågan#1

Jag har en tabell med artiklar rubrik, text mm), en tabell med bilder (länkar, namn osv), sen har jag en relationstabell som "länkar ihop" dessa.
Om jag nu till en specifik artikel vill använda en bild med en viss bildtext, var är det då bäst att lagra bildtexten? (Principiell fråga.) Ska jag lagra den i min relationstabell?
Eller i ytterligare en tabell? (Problemet består i att bilderna kan användas på flera ställen samt att det är olika antal bilder till olika artiklar.)

[Red.] Svaret är väl kanske ganska givet, det bör väl bli en egen tabell för bildtexterna också om man ska vara konsekvent.
------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

[Redigerat av solbulle den 27 jan 2002]

Medlem sedan dec. 19996 721 inlägg
#2

Om en bild bara används en gång i en artikel, så är det naturliga att lagra bildtexten i relationstabellen. Se inte relationstabellen som en teknikalitet, utan som:

"Dessa bilder ingår i dessa artiklar, och har där dessa bildtexter"

Medlem sedan mars 20015 287 inlägg
#3

Det tackar jag för.

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan mars 20015 287 inlägg
#4

Ok, då fortsätter jag. Att lägga in datan i olika tabeller är en sak, men att plocka ut den är värre.
Jag skulle behöva en "join" eller vad det nu kan bli.
Jag har försökt med Acces inbyggda utan resultat.
Hur skriver jag för att få ut min data?

Detta gav mig Access:

SQL = "SELECT tblbild.fldBildid, tblbild.fldNamn, tblbild.fldfile, tblrelation.fld_bild_id, tblrelation.fld_who_id, tblrelation.fld_btext_id, tblwho.fldartikelID, tblwho.fldRubrik, tblwho.fldArtikel FROM tblwho INNER JOIN (tblbild INNER JOIN tblrelation ON tblbild.fldBildid =tblrelation.fld_bild_id) ON tblwho.fldartikelID=tblrelation.fld_who_id"

Men jag får till svar: "Item cannot be found in the collection corresponding to the requested name or ordinal"

Fnuttfel? Det fungerar i Access.

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

[Redigerat av solbulle den 27 jan 2002]

Medlem sedan juni 200032 969 inlägg
#5

Det verkar som att du i din asp-kod försöker skriva ut ett fält som inte finns med i ditt recordset. Kontrollera att du skrivit rätt fältnamn i asp-koden.

Mvh,

Medlem sedan mars 20015 287 inlägg
#6

Kan man få ett förslag på förenkling av SQL-satsen så att den plockar fram alla fält, typ select * from
Om det nu går.

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan dec. 200012 464 inlägg
#7
SQL = "SELECT * FROM tblwho INNER JOIN (tblbild INNER JOIN tblrelation ON tblbild.fldBildid =tblrelation.fld_bild_id) ON tblwho.fldartikelID=tblrelation.fld_who"

------------------
essentitia preter non sans multiplicandum

Medlem sedan mars 20015 287 inlägg
#8

Det där var en lysande förenkling, förkortning.
Kalas, sen var det bara SBS som ställde till det i övrigt.
En kunskap in, två ut...

[Redigerat av solbulle den 27 jan 2002]

Medlem sedan juni 200032 969 inlägg
#9

Då vill vi se din kod om vi ska kunna hjälpa dig. :)

Mvh,

Medlem sedan mars 20015 287 inlägg
#10

Hupp, du var snabb, jag ändrade precis mitt inlägg. Nu fungerar det kanon.

Om jag skriver vad jag gjorde fel så blir jag utslängd ur forumet.

(Glömde " i rs("fldRubrik") )

Suck! Men huvudproblemet är hur som helst löst, och på vägen dit fick jag in det i en array också, många flugor i en smäll.

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan juni 200032 969 inlägg
#11

Om jag skriver vad jag gjorde fel så blir jag utslängd ur forumet.

Nej, då. :D

Jag tror jag har en aning om vad du gjorde, men vi vill gärna se vad det var. :)

Medlem sedan mars 20015 287 inlägg
#12

(Glömde " i rs("fldRubrik") )

Till mitt försvar åberopar jag att jag klippte den kod jag prövade den nya SQL:en i från en sida där jag tydligen satt variabler i mina recordsetsutplock. (Kan man säga: recordsetsutplock? Ja, ni fattar nog.)

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan mars 20015 287 inlägg
#13

Ok, denna plockar ut alla som är relaterad till varann:

SQL = "SELECT * FROM tblwho INNER JOIN (tblbild INNER JOIN tblrelation ON tblbild.fldBildid =tblrelation.fld_bild_id) ON tblwho.fldartikelID=tblrelation.fld_who_id"

Men om jag även vill kunna lista ut de poster i tblwho som inte har någon relation med tblbild? Hur gör jag då?
Fattar ungefär inget av dessa joins...

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan dec. 200012 464 inlägg
#14
SQL = "SELECT * FROM tblwho LEFT OUTER JOIN (tblbild LEFT OUTER JOIN tblrelation ON tblbild.fldBildid =tblrelation.fld_bild_id) ON tblwho.fldartikelID=tblrelation.fld_who_id"

------------------
essentitia preter non sans multiplicandum

Medlem sedan mars 20015 287 inlägg
#15

Snyft.

Join expression not supported.

Blev svaret från webläsaren.
(Kör Access)
?

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan dec. 200012 464 inlägg
#16
SQL = "SELECT * FROM (tblwho LEFT OUTER JOIN tblrelation ON tblwho.fldartikelID=tblrelation.fld_who_id )
LEFT OUTER JOIN tblbild ON tblrelation.fld_bild_id = tblbild.fldBildid "

------------------
essentitia preter non sans multiplicandum

Medlem sedan mars 20015 287 inlägg
#17

:) STRÅLANDE!

(Fast jag fattar typ inte ett smack av vad som händer, men fungerar gör det!)

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan mars 20015 287 inlägg
#18

eller...

Någon som har en bra länk eller skola där man kan snappa upp ett och annat vad det gäller join? Inner, outer osv?

Hur tex gör jag om jag vill lista ut ALLA poster i tblwho (med datan från tblbild där det finns?)
?

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan dec. 200012 464 inlägg
#19

Hur tex gör jag om jag vill lista ut ALLA poster i tblwho (med datan från tblbild där det finns?)

Det är det du får nu (med outer join) så vad ...

------------------
essentitia preter non sans multiplicandum

Medlem sedan mars 20015 287 inlägg
#20

Man hinner knappt vända sig om innan man får ett svar...
Nja, det fungerar nog iofs. Det var när jag försökte lägga allt i en array jag inte fick det att fungera.

	myArray = RS.GetRows()
response.write myArray(0,1) 'osv

Då får jag inte ut allt, inte samma som med den tidigare SQL:en.
Hur kommer det sig?

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

136 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)