L1nkMedlem sedan jan. 200232 inlägg Håller på å jobbar på ett litet forum .. men har dessvärre stött på lite små problem :)
När den visar meddelandena i ett specifik träd hämtar den alla meddelandena med id för trädet i fråga från en tabell vid namn "posts".. dock vill jag även hämta informationen om vem som skrivit meddelandet från en annan tabell vid namn members ,alltså samtidigt som jag loopar ut själva meddelandena...
Min databas är upplaggd på följande vis:
*En tabell för samtliga forum
*En tabell för alla träd
*En för alla members
*En för alla poster som gjorts till de olika träden.
Har funderat lite på om man kan loopa från två olika träd samtidigt, vilket kanske skulle gå men problemen börjar komma då de inte ska gå lika fort fram.. alltså vad jag menar är att medan man plockar meddelandena från "posts" i en jämnhastighet med hjälp av en "select" sats och "movenext" ska man ju grabba informationen om medlemen från "members" plockvis..
Ser att meddelandet kanske inte är så lätt att förstå sig på men skulle vara kul om någon iaf fösökte sätta sig in i mitt problem ...
Tack på förhand / Linus
@ndersMedlem sedan juni 200032 969 inlägg Exempel:
strSQL = "SELECT tabell1.fält1, tabell2.namn FROM tabell1, tabell2 where tabell1.id = tabell2.idfråntabell1"
En ganska enkel join utan kluriga uttryck. Du specificerar vilka fält du vill ha i SELECT, vilka tabeller det gäller i FROM, och de fält i de två tabellerna som ska knytas ihop lägger du i WHERE.
Förstår? :)
Mvh,
L1nkMedlem sedan jan. 200232 inlägg Tack .. tror jag förstått principen :)
L1nkMedlem sedan jan. 200232 inlägg Uhm .. kanske inte riktigt ändå..
Måste ju använda mig av två where ... först ska den ju hämta alla meddelanden där refId = id från min querystring sen ska den hämta informationen om en specifik användare där dess id = wID, alltså det som jag får fram med min första where fråga, och allt detta måste ju göras för varje nytt meddelande som ska loopas fram iom att det inte är samma medlem som skrivit alla inläggen
@ndersMedlem sedan juni 200032 969 inlägg Jag är inte helt säker på att jag förstår exakt vad du vill ha ut, men det borde inte vara några problem att få ihop det till en fråga.
strSQL = "SELECT tabell1.fält1, tabell2.namn FROM tabell1, tabell2 where tabell1.id = " & request.querystring("id") & " and tabell1.userid = tabell2.id"
Mvh,
L1nkMedlem sedan jan. 200232 inlägg :) Förstår att det kan vara lite svårt att förstå vad jag menar, lite små bökigt att föklara .. ska göra ännu ett försök :
Jag håller som sagt på och pillar med ett litet forum:
Min databas är uppbygg ungefär så här :
Tabell 1 : Posts
-------------------------------------------------------------------------------
Kolummer : ID, refID, Message, wName, wID, wDate etc etc
Tabell2 : Members
-------------------------------------------------------------------------------
Kolummer : ID, aName, Password, Name, sName, etc etc
När man klickar på ett träd (en gren) skickas man vidare till en annan sida ( posts.asp ) tillsammans med en querystring som innehåller id:t på den tråden man klickade på så att rätt meddelanden visas i rätt tråd..
Meddelandena ska loopas ut ungefär sä här
| Meddelandets Rubrik
-------------------------------------------------------------------------------
| Själva meddelandet...
Skribenten |
status |
|
Antalmeddelanden |
-------------------------------------------------------------------------------
Datumet | + lite knappar där man kan få info om skrib.
Rubriken, datumet samt meddelandet ligger i tabellen posts tillsammans med refID:t som talar om att just detta meddelandet hör till denna tråden. Där ligger även en kolum vid namn wID som innehåller id:t på personen som skrev meddelandet.
Skribenten, statusen, antalet meddelanden han skrivit samt den resterande informationen om användaren ligger i tabellen members och skall plockas samtidigt som meddelandena loopas fram, alltså för varje meddelande ska informationen från members om medlemen med id:t som är lika med det id:t som står i wID i tabellen posts hämtas ..
Tack på förhand / Linus
@ndersMedlem sedan juni 200032 969 inlägg Ok, jag tror att jag förstår. Med en fråga liknande den nedan får du ut allt du behöver.
strSQL = "SELECT Posts.*, Members.aName FROM Posts, Members WHERE Posts.ID = " & Request.Querystring("ID") & " AND Posts.wID = Members.ID"
Nu tog jag visserligen bara med aName från tabellen members, så där får du lägga till fler fält. Du får också lägga till din order by.
Mvh,
L1nkMedlem sedan jan. 200232 inlägg Får inga felmeddelanden nu iaf :)
Loopas dock inte ut någonting heller ..
Måste man göra på något speciellt sett när man har två tabeller öppna samtidigt? .. inte bara <=%oRs("kolumen")%>..
Tack på förhand / Linus
@ndersMedlem sedan juni 200032 969 inlägg Nej, du ska inte behöva göra något speciellt, det är ju bara ett recordset, precis som vanligt.
Hur ser din kod ut?
Kontrollera att SQL-frågan ser korrekt ut, genom att skriva ut den med response.write innan execute.
Mvh,
L1nkMedlem sedan jan. 200232 inlägg Sä här ser min sql fråga ut för tillfället:
strSQL2 = "SELECT Posts.*, Members.* FROM Posts, Members WHERE Posts.refID = " & ID & " AND Posts.aID = Members.ID"
Den genererar dock inget fel men skriver heller inte ut några svar ..
L1nkMedlem sedan jan. 200232 inlägg Förstår att det måse vara väldigt svårt att lösa något utan att kunna kika hur det ser ut ... postar därför följande :
Min databas
Koden för sidan
Själva sidan
Tack på förhand / Linus
solbulleMedlem sedan mars 20015 287 inlägg Och hur ser den ut om du skriver ut den?
response.write strSQL2
L1nkMedlem sedan jan. 200232 inlägg SELECT Posts.*, Members.* FROM Posts, Members WHERE Posts.refID = 1846 AND Posts.aID = Members.ID
solbulleMedlem sedan mars 20015 287 inlägg I den databas du länkar till är väl inte villkoret:
Posts.aID = Members.ID
uppfyllt?
solbulleMedlem sedan mars 20015 287 inlägg Har iofs svårt att se att du ska kunna få ut allt du vill med den sql-frågan, men @nders vet nog iofs vad han gör.
L1nkMedlem sedan jan. 200232 inlägg Nope .. det har du rätt i .. det borde vara orsaken till att det inte matas ut några poster..
Men jag förstår inte riktigt varför man använder en sql sträng som ser ut som denna ..jag menar .. den kommer ju bara att mata ut posterna som motsvara utrycket .. och det kommer ju inte att vara någon..
kan man inte lösa det på något annat sätt då ? .. typ att man öppnar två recordset samtidigt eller nått
L1nkMedlem sedan jan. 200232 inlägg eller det kanske är väldigt server krävande / segt ?
L1nkMedlem sedan jan. 200232 inlägg Nån som har nått förlag hur man kan undvika detta problemet .. typ forma om databsen etc ?
@ndersMedlem sedan juni 200032 969 inlägg Du har ju bara en användare i användartabellen, så sql-frågans villkor kommer aldrig att ge resultat. Om du ser till att Posts.aID refererar till ett giltigt användarid borde du få rätt resultat.
Förutsett att jag förstått problemet...
Mvh,