webForumDet fria alternativet

Samma rubrik hela tiden???

ASP

38 svar · 1 199 visningar · startad av jimbo · sida 2 av 2

Frågan, av jimbo

Hej på er! Jag försökte att få ihop en kod som ska visa de senaste inläggen i besökarnas dagböcker med rubriken som fokus. Men grejen är att när det blir fler än 3 medlemmar som skriver nya inlägg så visar koden samma rubrik för alla ?? Hur är det möjligt, kan någon kika o ge mig lite råd kanske? <% Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "DBQ=" & Server.Mappath("

Läs frågan i sin helhet →
Medlem sedan jan. 20013 582 inlägg
#21

:)
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

Medlem sedan juni 200032 967 inlägg
#22

Text ä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

Medlem sedan jan. 20013 582 inlägg
#23

:)
Helt rätt!

Använd inte text som fältnamn

mvh

Medlem sedan feb. 2003185 inlägg
#24

Hej 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

Medlem sedan feb. 2003185 inlägg
#25

Hej 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

Medlem sedan feb. 2003185 inlägg
#26

Hej 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

Medlem sedan jan. 20013 582 inlägg
#27

:)

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

Medlem sedan feb. 2003185 inlägg
#28

Hej!

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

Medlem sedan feb. 2003185 inlägg
#29

Hej 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
%>
Medlem sedan juni 200032 967 inlägg
#30

Du ska väl inte koppla mot dagbog.id, du borde ju ha något sorts fält som innehåller användar-id?

Medlem sedan feb. 2003185 inlägg
#31

Nej 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

Medlem sedan feb. 2003185 inlägg
#32

Ä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?

Medlem sedan jan. 20013 582 inlägg
#33

:)
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

Medlem sedan feb. 2003185 inlägg
#34

Jo 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 =)

Medlem sedan jan. 20013 582 inlägg
#35

:)

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

Medlem sedan feb. 2003185 inlägg
#36

JAAAAAAAAA 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å?

Medlem sedan jan. 20013 582 inlägg
#37

:)

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

Medlem sedan feb. 2003185 inlägg
#38

Naturligtvis 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 ;)

Medlem sedan jan. 20013 582 inlägg
#39

:h

Mvh
Henrik

269 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)