webForumDet fria alternativet

Hämta från alla tabeller i databasen!

ASP

12 svar · 461 visningar · startad av magnusfernstrom

Medlem sedan mars 20033 686 inlägg
Frågan#1

Hejsan!
Jag har en liten fråga.
Hur skall man gå tillväga för att hämta information från alla tabeller i databasen?

Alltså om jag har en tabell som heter Namn och en som heter Efternamn. Hur skall jag då kunna skriva ut både efternamn samt förnamn utan att skapa en connection till varje enskild tabell?

Kanske dåligt förklarat men fråga om ni inte fattar.

Medlem sedan jan. 2002381 inlägg
#2

Det kanske är lite onödigt att ha tabeller för varje egenskap hos någonting exempelvis förnamn, efternamn osv. dessa kanske kan ligga i samma tabell.. Iallafall. Det räcker ju med en sql-fråga för att hämta precis vilken information du vill, oavsett hur många tabeller du har i din DB: "select namn.*, efternamn.*, annantabell.* from namn, efternamn, annantabell" och så kanske nån eller några wheresatser eller joinsatser för att koppla ihop tabellerna.

Medlem sedan mars 20033 686 inlägg
#3

Alltså, detta var ju bara ett exempel.
Jag har en databas som håller reda på medlemmar i en community i en tabell. En som håller reda på forumet i en tabell samt en som håller reda på alla meddelanden som skickas mellan medlemmarna.

Det jag vill göra är:
När en medlem med admin rättigheter kommer till forumet (admins har en tvåa i kolumnen status) så skall en låsnings funktion för en tråd visas.
Om tråden är låst har den värde 1.

En olåst tråd skall man kunna se länken man låser tråden med. Men när tråden är låst skall en länk som det står lås upp på istället visas.

Eftersom statusen hos en medlem ligger i tabellen users och statusen för tråden som visar om den är låst eller inte ligger i tabellen forum.

Jag måste alltså hämta värde från två tabeller!

Medlem sedan jan. 2002381 inlägg
#4

jag antar att endast medlemmen med adminrättigheter skall kunna låsa och låsa upp tråden..

"SELECT forum.status, users.Status, users.Status
FROM forum, users
WHERE users.Status=2"

med detta får du ju fram statusen på alla trådar samt endast de medlemmar som har adminrättigheter.

Däremot är det väl onödigt att hämta statusen för en tråd om medlemmen inte har adminrättigheter. För isåfall skall väl ingenting visas iallafall.. Eller hänger dessa två tabeller ihop på något vis. Att exempelvis någon speciell medlem har några speciella rättigheter till vissa trådar eller liknande??

Medlem sedan mars 20033 686 inlägg
#5

Hmmm jag vet faktist inte vad du menar.
Men så här är det.

I tabellen users har du då användarnamn mm. + status.
Om man har status 1 eller 2 (2:an har fler rättigheter än 1:an, och vanliga medlemmar har värde 0). ska man kunna få länkar som ger en möjligheter att bl.a. låsa i forumet, se IP nummer mm.

De med status 0 kan inte administrerar forumet. De med status 1 kan låsa samt låsa upp trådar. De med 2 kan även dom låsa samt låsa upp trådar. Men dom kan även ta bort trådar.

I tabellen forum ligger ju förstås alla forumets inlägg samt statusen om den är låst eller inte.

När man läser en tråd kollar en IF sats först om den är låst, detta kollas då upp i tabellen forum. Om den inte är det kollar den upp om användaren man är inloggad som har status 1 eller 2. Om den har det skall det stå: status1: LÅS TRÅD, Status2: LÅS TRÅD - TA BORT TRÅD.
Om den är låst skall det stå LÅS UPP TRÅD för de med status 1 och ja, LÅS UPP TRÅD - TA BORT TRÅD för de med status 2.

SÅ alltså jag kollar först upp om tråden är låst. Om den är det kollar jag upp vilken status medlemmen man är inloggad som har.
Om den inte är det, ja då försvinner länkarna som var där innan och ersätts istället med de andra länkarna.

Lite svårt att förklara :)
Men hoppas att någon förstår !

Medlem sedan mars 20033 686 inlägg
#6

Ett litet problem:

SQL = "SELECT * FROM users WHERE username = '" & Session("username") & "'"

Och

SQL = "SELECT * FROM forum, WHERE FID = " & Request.Querystring("trad") & ""

Hur skall jag kombinera dessa två kodsnuttar?

Medlem sedan juni 200032 967 inlägg
#7
SQL = "SELECT * FROM forum, users WHERE FID = " & Request.Querystring("trad") & " AND forum.ettfält = users.ettfält"

Hur hänger tabellerna ihop?

(Jag har inte läst all massiv text ovan. Än. ;))

Medlem sedan mars 20033 686 inlägg
#8

Ja...ummm läs den massiva text ovan ;)
Kanske du förstår då.
Jag är dålig på att förklara så fråga om du inte fattar efter att ha läst :)

Medlem sedan juni 20015 009 inlägg
#9
SELECT users.*, forum.*
FROM users, forum
WHERE users.username = "username" AND forum.FID = "trad"

Så kanske?¿

/r umm borde iofs vara samma som @nders skrev... :r

Medlem sedan mars 20033 686 inlägg
#10

SELECT users.*, forum.*

Vad händer här? Talar denna om vilka tabeller som ska kollas eller?
Om den gör det, vad har då FROM för uppgift?
Eller är det vilka kolumner som skall hämtas ?
Vore schysst om du ville förklara koden lite snabbt ! :)

Medlem sedan juni 200032 967 inlägg
#11

magnusfernstrom skrev:

SELECT users.*, forum.*

Vad händer här? Talar denna om vilka tabeller som ska kollas eller?

När man ska hämta data från mer än en tabell kan det vara vettigt att specificera vilka fält från vilka tabeller man vill hämta. I just det här fallet är det samma (påstår jag) som Select * From users, forum.

Eller är det vilka kolumner som skall hämtas ?

Jepp. Alltså: alla kolumner från users och alla från forum.

- - - - - - -

Jag är fortfarande inte riktigt med på hur users och forum hänger ihop. Finns det något fält tabellerna har gemensamt? Om inte, känns det onödigt att slå ihop dem i samma fråga.

Medlem sedan juni 20015 009 inlägg
#12

Min sql-fråga är rätt onödig i detta fall, jag som är van att skriva så bara då jag nästan alltid har med många tabeller att jobba med. :)

Medlem sedan mars 20033 686 inlägg
#13

Okej tack grabbar skall kolla om det fungerar.
Kommer tillbaks om det uppstår fler problem!

274 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)