webForumDet fria alternativet

Data från 2 tabeller

ASP

15 svar · 380 visningar · startad av Gimbo

Medlem sedan dec. 20001 626 inlägg
Frågan#1

Hejsan!

På första sidan har ag så att man kan se senaste inlägg i forumet, men forumets databas ser ut på följande sätt:
forum
- inlagg
-svar

dvs jag har två tabeller en för inlägg och en för svar... när jag ska skriva ut den senaste postade inlägget på första sidan gör jag så här:

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("forumet.mdb")&";pwd=losen"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT Top 1 * FROM svar ORDER BY Id DESC"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
%>

Men nu hämtar den bara den senaste svaret på ett inlägg från forumet kan man inte göra så att den hämtar det senaste inlägget från svar och inlagg???

Medlem sedan dec. 20001 626 inlägg
#2

ojdå, postade mitt lösenord oxå, damn... skumt att det inte går att redigera inläggen längre på wf

Medlem sedan nov. 20017 144 inlägg
#3

skumt att det inte går att redigera inläggen längre på wf

Vad händer då om du klickar på symbolen till höger med ett block och en penna?! ;)

MVH Jesper

Medlem sedan dec. 200012 464 inlägg
#4

Vilka kolumner finns det i de båda tabellerna och vilka vill du ha med i resultatet?

Medlem sedan dec. 20001 626 inlägg
#5

i båda tabellerna finns kolumnerna, rubrik, namn och inlägg som jag vill ha med och de skriver jag ut m h a RecSet på sidan, problemet är som sagt att själva inläggen (med namn rubrik och inlägg) hamnar i en tabell och svaren (med namn rubrik och inlägg) i en annan...

Medlem sedan dec. 200012 464 inlägg
#6

Har du ingen datum-kolumn? Om du inte har det så kan du inte avgöra vilken post som är den senaste i de båda kolumnerna.

Medlem sedan dec. 20001 626 inlägg
#7

jo visst har jag en datum kolumn i de båda tabellerna, glömde bara skriva ut den

Medlem sedan dec. 200012 464 inlägg
#8
select top 1 * rubrik, namn, inlagg, datum 
from (select top 1 * from inlagg order by datum desc
         union all
         select top 1 * from svar order by datum desc)
order by datum desc
Medlem sedan dec. 20001 626 inlägg
#9

får följande felmeddelande:

Microsoft VBScript compilation error '800a0409' 

Unterminated string constant 

/huvud.asp, line 144 

Visa = "select top 1 * rubrik, namn, inlagg, datum
Medlem sedan dec. 200012 464 inlägg
#10

Det går inte att lägga in en ny rad mitt i en sträng

query = "select top 1 * rubrik, namn, inlagg, datum " & _
" from (select top 1 * from inlagg order by datum desc " & _
" union all select top 1 * from svar order by datum desc) " & _
" order by datum desc "
Medlem sedan dec. 20001 626 inlägg
#11

felmeddelande igen:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '* rubik'.
Medlem sedan juni 200032 967 inlägg
#12

Det råkade vara en * för mycket i det första select-uttrycket.

query = "select top 1 rubrik, namn, inlagg, datum " & _
" from (select top 1 * from inlagg order by datum desc " & _
" union all select top 1 * from svar order by datum desc) " & _
" order by datum desc "

Mvh,

Medlem sedan dec. 20001 626 inlägg
#13

får detta felmeddelande nu:

[Microsoft][ODBC Microsoft Access Driver] The number of columns in the two selected tables or queries of a union query do not match.
Medlem sedan juni 200032 967 inlägg
#14

Då får du specificera vilka fält du ska ha från de två selectfrågor du har en union mellan. Det skall vara lika många fält från varje select-fråga, och fälten som läggs ihop ska ha jämförbara typer.

Mvh,

Medlem sedan dec. 20001 626 inlägg
#15

Alltså det är så här:
På första sidan så ska man kunna se senaste postade inlägg i forumet och jag har två tabeller i databasen där den ena heter inlagg och den andra svar, tabellerna ser ut så här:
svar [id, namn, mail, rubrik, inlagg, datum, referens_id, ip]
inlagg [id, namn, mail, rubrik, inlagg, datum, senast_svar, ip, svar]

och det jag vill skriva ut på sförsta sidan är:
Namn
Rubrik
Inlagg

Medlem sedan juni 200032 967 inlägg
#16

Skriv då dina union-selecter så de endast tar med de fälten.

282 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
142 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
151 ms — ändringar (db)