webForumDet fria alternativet

Hjälp att koppla flera kategorier till en nyhet.

ASP

6 svar · 187 visningar · startad av grimmy

Medlem sedan okt. 200118 inlägg
Frågan#1

Hej Jag sitter och jobbar med en enkel nyhetsmotor. Jag behöver koppla flera katergorier till en nyhet.

Jag vill alltså sålla ut där följande är sant:

Nyhet tillhör kategori nyhet-musik-
men på ett annat ställe vill jag ta allt som hamnar under t ex nyhet-sundsvall.

Mao så kan en nyhet tillhöra ett valfritt antal kategorier.

Jag vill också i efterhand kunna lägga till egna kategorier, annars hade jag enkelt kunna lägga allt i en enda tabell.

Jag har förstått att jag behöver två tabeller. En med kategorier och en med nyhetsinfon (nyhetsid, författare, rubrik, brödtext etc..)

Kan någon hjälpa mig med att antingen beskriva hur acessdatabasen skall ställas in (dvs hur ev kopplingar/relationer ser ut). Och hur sql-frågan kan se ut.

Eller kanske visa ett färdigt exempel?

Mvh
Grimmy

Medlem sedan mars 20014 214 inlägg
#2

Välkommen till WF

Jag förstår inte riktigt vad du vill göra. Kan vara trögfattad... MEn kan gissa lite smått.

Om du vill ha två tabeller, en där du lagrar kategorier och en där du lagrar nyheter och placera in dessa nyheter under flera kategorier.

Då gör du nog enklast i att skapa ett fält i nyhettabellen där du skriver in alla kategorier som nyheten ska tillhöra och dela av dem med ; mot varandra.

Sedan kan du enkelst splitta dem genom en arrey.

------------------
MVH

Medlem sedan feb. 20001 590 inlägg
#3

Du behöver förutom tabeller med kategorier och nyheter, en relationstabell.

typ:

tbl_kat:
* id räknare , primärnyckel
kategorinamn text

tbl_rel:
kat_id tal
nyhet_nr tal

tbl_nyheter:
nyhetsnr räknare
kategori tal
rubrik text
artikeltext PM
författare text

Vid SQL frågorna måste man gå via relationstabellen.

Tala om lite mer vilka fält du vill ha, så vi fixa till SQL frågorna senare...
/T

------------------
Jensen Ambassadör, mitt bästa köp! www.jensen.no

Medlem sedan dec. 200012 464 inlägg
#4

Rinaldo, skärp dig nu. Så gör man inte ;).

grimmy:

Du behöver en extra tabell där du lagrar vilka kategorier som hör ihop med en viss nyhet

create table nyhet(id counter,
nyhet varchar(255), 
datum datetime , 
primary key(id))

create table kategori(id counter, kategori varchar(20), 
beskrivning varchar(255), 
primary key (id))

create table nyhetsKategorier(
nyhetid number,
kategoriid number, 
primary key(nyhetid,kategoriid), foreign key (nyhetid) references nyhet(id),
foreign key (kategoriid) references kategori(id))

För att få fram alla nyheter som hör ihop med kategori Sundsvall

select nyhet.* from nyhet inner join nyhetKategori on nyhet.id = kategorinyhet.nyhetid inner join kategori on kategorinyhet.kategoriid = kategori.id where kategori = 'Sundsvall'

För att få fram alla kategorier som för alla nyheter

select kategori.* from nyhet inner join nyhetKategori on nyhet.id = kategorinyhet.nyhetid inner join kategori on kategorinyhet.kategoriid = kategori.id

Det är alltså samma join men med olika restriktioner i where.

red: Så du bor i Sundsvall. Jag bodde på Alnö tidigare.
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 23 jan 2002]

Medlem sedan okt. 200118 inlägg
#5

Hej alla. Tack för välkommnandet Rinaldo : )

Dock så tror jag Toonster och Lars G låg lite närmare det jag önskade. Tack alla.

Lars G: Du hade ju en "färdig" kod så jag tänkte prova den först.

Jag funderar på om den första koden är för databasen. *skäms* Går den att använda i Acess? (Jag har ingen annan databs att labba mot just nu.) Isåfall vart skriver man egna databas-"script"? Eller kan jag göra detta manuellt och få samma resultat? Foreign key och references vet jag inte hur man hittar i access :)

Medlem sedan dec. 200012 464 inlägg
#6

Jo det borde gå att använda dom create table satser som jag skrev direkt i Access. Det lär finnas något fönster där du kan mata in ren sql men jag vet inte några detaljer.

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

Medlem sedan mars 20014 214 inlägg
#7

Jag fattade ju inte va han menade LarsG *gråter mig till sömns* ;)

------------------
MVH

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)