Avatar billede Slettet bruger
30. april 2002 - 14:27 Der er 15 kommentarer og
1 løsning

Brug af relationer i forbindelse af hjemmeside

Hej ekspreter....


er der nogen herinde, der ved hvordan jeg kan indrage relationer i en database, med hensyn til brugen i forbindelse med en hjemmeside ?

mvh.
www.questis.dk
Avatar billede pfp Nybegynder
30. april 2002 - 14:32 #1
Hej,

Du laver bare relationerne som du vil i Access. Derefter bruger du bare f.eks. ASP til at trække det ud, som du vil. Der er ikke nogle specielle problemer med det fordi der er relationer i databasen. Du kan godt bruge nogle forskellige kommandoer når du laver din SQL (f.ek.s Join og Innerjoin). Men ellers vil jeg ikke mene du skal gøre noget specielt for, at kunne bruge en relationsdatabase i forbindelse med en hjemmeside.

/peter
Avatar billede Slettet bruger
30. april 2002 - 14:34 #2
det vil sige at hvis jeg har lavet en relation i min db... kan jeg skabe genvej til denne ved at skrive innerjoin i min SQL ?
Avatar billede pfp Nybegynder
30. april 2002 - 14:37 #3
Hej,

Du bruger innerjoin (så vidt jeg husker) hvis du f.eks. vil sortere indholdet af en tabel efter en kollone i en anden tabel.

Prøv at komme med et konkret eksempel på, hvad det er du vil lave så kan det være jeg kan hjælpe dig lidt videre med det.

/peter
Avatar billede Slettet bruger
30. april 2002 - 14:41 #4
okay.... jeg er ved at lave et projekt (som du ved) der skal jeg indrage relationer i db...

det havde jeg tænkt mig at gøre i forbindelse med at jeg laver en maneger (forkert stavet) til men side, der vil jeg lave en tabel der hedder menuer, hvor alle mine overskrifter ligge på menuerne, derefter ville jeg så lave en relation til en anden tabel der hedder menu_indhold, hvor den så kunne hente de dataer der hører til de enkelte menuer... er det klart nok ?
Avatar billede Slettet bruger
30. april 2002 - 14:58 #5
pfp>>

har du fundet ud af noget ???
Avatar billede pfp Nybegynder
30. april 2002 - 17:11 #6
Hej,

Ja så er jeg her igen. Så opretter du bare følgende 2 tabeller, og en query:

OVERSKRIFTER
- ID (autonr.)
- Overskrift (tekst)

INDHOLD
- IndholdID (autonr.)
- Indhold (tekst)
- HovedID (tal)

Derefter opretter du en query (forespørgsel), hvor du laver relationer mellem dine felter Indhold.HovedID og Overskrift.ID

Og herefter kan du bare lave en ganske alm. SQL-sætning hvor du selecter fra din query. På den måde er det ligesom, at have dataene fra de to tabeller samlet i en tabel.

Hvis det volder dig problemer kan jeg prøve, at sende dig et eksempel på mail.

/peter
Avatar billede Slettet bruger
30. april 2002 - 17:14 #7
kan du ikke omskrive denne, så den sorterer det efter navn, ved id =2?

SELECT tab1_id, tab1_text, tab2_id, tab2_text FROM tabel_1, tabel_2 WHERE tabel_1.tab1_id = tabel_2.tab1_id
Avatar billede pfp Nybegynder
30. april 2002 - 17:19 #8
øhh jo, men hvorfor ikke lave en query.

Ellers putter du da bare en ORDER BY på??? Hvad mener du med "ved id =2"???
Avatar billede Slettet bruger
30. april 2002 - 17:22 #9
min forspørgsel ser således ud nu:
strSQL = "Select * From menu_indhold where menu_id = 2 Order by navn"

så vil jeg gerne have at den fra min tabel ved navn menu_indhold medtager aller punkter, via en relation, det var det jeg mente
Avatar billede pfp Nybegynder
30. april 2002 - 17:24 #10
hmm, virker ovenstående SQL? Hvad hedder den anden tabel, som du også gerne vil have med?? Det kan godt være det er mig der bare ingenting forstår nu....
Avatar billede Slettet bruger
30. april 2002 - 17:28 #11
ovenstående SQL virker til at hente alt fra Manu_indhold &:-D

forkerte du fik *GG'

det var denne:
strSQL = "Select * from Menuer where menu_id = 1"

hvor jeg så ville have den til også at hente alle i tabellen manu_indhold med det samme id som angivet
Avatar billede Slettet bruger
30. april 2002 - 17:31 #12
i princippet er det de to, der skal slåes samen til en via relationen menu_id til Menu_id
Avatar billede pfp Nybegynder
30. april 2002 - 17:35 #13
jeg tror altså desværre ikke jeg forstår dig. Vil du gerne have at den henter alle poster fra både Menuer og menu_indhold, hvor id er f.eks. 1??

Hvis det var det kan du vel bruge:
strSQL = "Select * from Menuer, menu_indhold where menu_id = 1"

Dog ikke testet!!!
Avatar billede Slettet bruger
30. april 2002 - 17:39 #14
der er lavet en relation i min db, mellem 2 kolonner der hedder menu_id i hver deres tabel, hendholdsvis tabllen menuer og tabellen menu_indhold, det jeg så ville var at når man kaldte med denne:

strSQL = "Select * from Menuer where menu_id = 1"

at den medtog den relation jeg har lavet i db'en
Avatar billede pfp Nybegynder
30. april 2002 - 17:43 #15
ja ok, så skal du bruger innerjoin så vidt jeg ved.

Her er lige lidt copy/paste:

"Using Joins
Join conditions can be specified in either the FROM or WHERE clauses; specifying them in the FROM clause is recommended. WHERE and HAVING clauses can also contain search conditions to further filter the rows selected by the join conditions.

Joins can be categorized as:

Inner joins (the typical join operation, which uses some comparison operator like = or <>). These include equi-joins and natural joins.
Inner joins use a comparison operator to match rows from two tables based on the values in common columns from each table. For example, retrieving all rows where the student identification number is the same in both the students and courses tables.

Outer joins. Outer joins can be a left, right, or full outer join.
Outer joins are specified with one of the following sets of keywords when they are specified in the FROM clause:

LEFT JOIN or LEFT OUTER JOIN
The result set of a left outer join includes all the rows from the left table specified in the LEFT OUTER clause, not just the ones in which the joined columns match. When a row in the left table has no matching rows in the right table, the associated result set row contains null values for all select list columns coming from the right table.

RIGHT JOIN or RIGHT OUTER JOIN.
A right outer join is the reverse of a left outer join. All rows from the right table are returned. Null values are returned for the left table any time a right table row has no matching row in the left table.

FULL JOIN or FULL OUTER JOIN.
A full outer join returns all rows in both the left and right tables. Any time a row has no match in the other table, the select list columns from the other table contain null values. When there is a match between the tables, the entire result set row contains data values from the base tables.

Cross joins.
Cross joins return all rows from the left table, each row from the left table is combined with all rows from the right table. Cross joins are also called Cartesian products.

For example, here is an inner join retrieving the authors who live in the same city and state as a publisher:

USE pubs

SELECT a.au_fname, a.au_lname, p.pub_name

FROM authors AS a INNER JOIN publishers AS p

    ON a.city = p.city

    AND a.state = p.state

ORDER BY a.au_lname ASC, a.au_fname ASC

 

The tables or views in the FROM clause can be specified in any order with an inner join or full outer join; however, the order of tables or views specified when using either a left or right outer join is important. For more information about table ordering with left or right outer joins, see Using Outer Joins
."

Håber du kan bruge det til noget, for jeg er ikke selv så meget hjemme i det med at joine.
Avatar billede pfp Nybegynder
30. april 2002 - 17:47 #16
Hej igen,

Prøv at læse denne forumtråd fra activedeveloper.dk. Jeg tror faktisk det er du du mangler:
http://activedeveloper.dk/forum/forum.asp?mid=28284
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester