devotionMedlem sedan jan. 20013 582 inlägg:)
Jimbo: Mina tabellnamn var bara påhittade för att du skulle förstå upplägget!!
Som @nders skrev måste du använda dina egna tabellnamn.
Jag brukar namnge tabeller med prefixet tbl, för att veta att det är en tabell. Likaså kan du använda prefixet fld för att visa att det är ett fältnamn.
Med dina tabellnamn borde frågan se ut så här:
"SELECT TOP 3 users.user_Id, users.user_name, dagbog.overskrift, dagbog.text FROM users INNER JOIN dagbog ON users.user_Id = dagbog.user_Id"
exempel:
tblUser.userId
tblUser är tabellen, userId är fältnamnet (Kolumnen)
Mvh
@ndersMedlem sedan juni 200032 967 inläggText är för övrigt inget bra namn på ett fält, då det är ett reserverat ord (datatyp). Namnbyte är helt klart att rekommendera.
Mvh
devotionMedlem sedan jan. 20013 582 inlägg:)
Helt rätt!
Använd inte text som fältnamn
mvh
jimboMedlem sedan feb. 2003185 inläggHej på er, tack för att ni tar er tid!
Jo att jag skulle använda mina egna namn så långt var jag med, trodde bara att tbl skulle vara med, ja man vet ju aldrig =)
Testade ditt exempel ovan Henke, satte också in dato istället för text:
"SELECT TOP 3 users.user_Id, users.user_name, dagbog.overskrift, dagbog.dato FROM users INNER JOIN dagbog ON users.user_Id = dagbog.user_Id"
Men den bråkar om något än :
"För få parametrar angavs. 1 förväntades. "
kommer inte ihåg vad detta menas med?
Mvh Jimmy
jimboMedlem sedan feb. 2003185 inläggHej igen!
Kan ju försöka lära mig att söka först i forumet så lär man ju sig ett och annat, tex att detta felmeddelandet betyder att det inte stämmer med något fältnamn oftast.
Men grejen är att jag tycker allt stämmer med namnen iof, om man tittat i databasen (hela koden):
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DBQ=" & Server.Mappath("dagbog.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
Set objrs = Server.CreateObject("ADODB.RecordSet")
strQ = "SELECT TOP 3 users.user_Id, users.user_name, dagbog.overskrift, dagbog.dato FROM users INNER JOIN dagbog ON users.user_Id = dagbog.user_Id"
objrs.Open strQ, objConn, 1, 3
Do while not objrs.EOF or objrs.BOF
response.write("<A HREF='dagbog.asp?ejer=" & objRS("user_id") & "'>"& objRS("user_name") & " - " &"</A> " &objrs("overskrift") & " den " & objrs ("dato")&"<br>")
objrs.movenext
loop
objrs.Close
Set objrs = Nothing
objConn.Close
Set objConn = Nothing
%>
Mvh JImmy
jimboMedlem sedan feb. 2003185 inläggHej oj vad ja skriver:
Fick igång det oj jo mycket riktigt det fanns ju inget som hette "dagbog.user_Id" då tänkte ja att det måste vara "bruger_id" men då blev det kopplingsfel hmmmm då satte jag dit bara "id" och då vips var det igång:
"SELECT TOP 5 users.user_Id, users.user_name, dagbog.dato, dagbog.overskrift FROM users INNER JOIN dagbog ON users.user_Id = dagbog.Id"
Satte topp 5 men den har inte med mitt inlägg, och den kör ju bara 4 st av någon anledning?
Mvh Jimmy
devotionMedlem sedan jan. 20013 582 inlägg:)
Jo, som sagt du måste använda de fält du har i din databas....
Har du fler än 4 poster i databasen???
Kopplade poster alltså...
mvh
jimboMedlem sedan feb. 2003185 inläggHej!
Jo där är ju 5 poster i varje tabell (dagbog och users) men dessa är ju user_email och text vilket inte behövs visas ju, eller behöver va me i koden.
Mvh Jimmy
jimboMedlem sedan feb. 2003185 inläggHej igen!
Har ju försökt att reda ut detta, men den kör inte samma rubrik till rätt användare än av någon anledning ,är det någon som kanske kan hjälpa mig på traven?
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DBQ=" & Server.Mappath("dagbog.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
Set objrs = Server.CreateObject("ADODB.RecordSet")
strQ = "SELECT TOP 5 users.user_Id, users.user_name, dagbog.overskrift, dagbog.dato FROM users INNER JOIN dagbog ON users.user_Id = dagbog.Id"
objrs.Open strQ, objConn, 1, 3
Do while not objrs.EOF or objrs.BOF
response.write("<A HREF='dagbog.asp?ejer=" & objRS("user_id") & "'>"& objRS("user_name") & " - " &"</A> " &objrs("overskrift") & " den " & objrs ("dato")&"<br>")
objrs.movenext
loop
objrs.Close
Set objrs = Nothing
objConn.Close
Set objConn = Nothing
%>
@ndersMedlem sedan juni 200032 967 inläggDu ska väl inte koppla mot dagbog.id, du borde ju ha något sorts fält som innehåller användar-id?
jimboMedlem sedan feb. 2003185 inläggNej det är där jag med tror de hänger men om jag kopplar det till
dagbog.bruger_id så blir det :
Typblandningsfel i uttryck så hmmm
Kika här på fältnamnen så kanske du reda ut det?
http://www.fiskeportalen.com/dagbog.jpg
jimboMedlem sedan feb. 2003185 inläggÄndrade lite i kopplingarna...
Har fått det till att funka sådär, den visar fortfarande fel inlägg till skrivare, ex nu visar den ett inlägg för id 10 som skulle varit till id 17......
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DBQ=" & Server.Mappath("dagbog.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
Set objrs = Server.CreateObject("ADODB.RecordSet")
strQ = "SELECT TOP 12 dagbog.bruger_id, users.user_name, dagbog.overskrift, dagbog.dato FROM users INNER JOIN dagbog ON users.user_id = dagbog.Id"
objrs.Open strQ, objConn, 1, 3
Do while not objrs.EOF or objrs.BOF
response.write("<A HREF='dagbog.asp?ejer=" & objRS("bruger_id") & "'>"& objRS("user_name") & " - " &"</A> " &objrs("overskrift") & " den " & objrs ("dato")&"<br>")
objrs.movenext
loop
objrs.Close
Set objrs = Nothing
objConn.Close
Set objConn = Nothing
%>
Det är iallfall detta som spökar:
users.user_id = dagbog.Id **OCH DETTA** response.write("<A HREF='dagbog.asp?ejer=" & objRS("bruger_id") & "'>"& objRS("user_name")
När man kan få dessa fältnamn att sammarbeta så kommer den visa rätt namn till rätt överksrift e jag övertygad om, har testat fram o tillbaka nu men hittar inte lösningen?
devotionMedlem sedan jan. 20013 582 inlägg:)
Som jag kan se det så ska du koppla user_Id mot bruger_Id.
Att du får typblanningsfel beror på att du har olika fälttyper i databasen. Om du jämför de olika tabellerna i bilden du la upp så ser du att i User är User_id högerställt och i tabellen dagbog är bruger_Id vänsterställt. Troligtvis är fältypen "tal" i User och "text" i dagbog...
Ändra så du har samma exempelvis "tal"
Mvh
Henrik
jimboMedlem sedan feb. 2003185 inläggJo så ville jag med ha de till, och jo user är satt som RÄKNARE och bruger_id satt som text, ska pröva det MEN nu när jag fipsade runt lite så ändrade jag här att den skulle läsa ifrån samma fält:
response.write("<A HREF='dagbog.asp?ejer=" & objRS("bruger_id") & "'>"& objRS("bruger_id")
Men lägger jag då in user_name i slutet där istället för bruger_id så länkar den fel dagbok till användare?
user_name vill man ju ha in det ser ju lite tråkigt ut med id numret framför rubriken =)
devotionMedlem sedan jan. 20013 582 inlägg:)
Tittade lite till och du har kopplat fel för att få det önskade resultatet
strQ = "SELECT TOP 12 dagbog.bruger_id, users.user_name, dagbog.overskrift, dagbog.dato FROM users INNER JOIN dagbog ON users.user_id = dagbog.Id"
Du ska inte koppla
...INNER JOIN dagbog ON users.user_id = dagbog.[b]Id[/b]
utan
...INNER JOIN dagbog ON users.user_id = dagbog.[b]bruger_id[/b]
dagbog.id är väl bara ett unikt id för inlägget eller?
Ändra kopplingen och fältypen så ska det nog funka...
Mvh
Henrik
jimboMedlem sedan feb. 2003185 inläggJAAAAAAAAA såg de med precis, ändrade också till text inne i databasen och ändrade till user_name i länken som skrivs ut och NU verkar det funka prima =))) TACKAR HYVENS!!
Ok nu till en annan fundering, om jag nu vill ha det som de 5 senaste skrivna inläggen, då måste jag väl nästan lägga in en ORDER BY i början på Recordseten, för så som det är nu funkar de ju inte så?
devotionMedlem sedan jan. 20013 582 inlägg:)
Order By använder du dig av i SQL-satsen...
...INNER JOIN dagbog ON users.user_id = dagbog.bruger_id Order By dagbog.dato DESC
ASC stigande (det lägsta till det högsta värdet)
DESC fallande (det högsta till det lägsta värdet)
mvh
Henrik
jimboMedlem sedan feb. 2003185 inläggNaturligtvis ska jag ju ha det i den satsen, dum ja e
TACKAR så mycket för hjälpen Henrik, man lär så länge man lever ;)