Hej Hmm.. Det känns som om du inte riktigt har förstått hur man designar databaser. Det vanliga är att man har <b>en</b> tabell som man lagrar samtliga nyheter i. mjo, men nu har jag 2 undersidor med nyheter på, så då vill jag även ha dessa nyheter på framsidan i datum ordning Borde fungera i databaser som klarar av subselects: ok, tack. kanske glömde skriva att jag anv. access. Eftersom det inte finns någon "<id" i den raden gissar jag att det inte alls är rad 7... istället för 3 tabeller, kan du kategorisera nyheterna.Hämta data från flera tabeller
Skulle behöva lite hjälp med att hämta data från 3 olika tabeller. tabellerna heter Nyhet1, nyhet2, nyhet3 och databasen heter Databas.
Det är samma kolumner i alla tre tabellerna. ID, Namn, Text, Datum.
Jag vill at den senaste nyheten ska ligga överst.
Tacksam för all hjälp jag kan fåSv: Hämta data från flera tabeller
Utan att tänka allt för mycket så tror jag att den bästa lösningen är att köra
tre olika select-satser och med ett where villkor som sorterar på datumtabellen samt ett top/limit-villkor satt till 1 som bara ger ett resultat per select. (Vet inte vilken DB du har så det är svårt att skriva en sql-sats).
Sen är det bara att jämföra datum-värdena mot varandra och skriva ut den nyheten med det senaste datumet.
Hoppas det var till någon hjälp.
// DSv: Hämta data från flera tabeller
Isf borde det räcka med
SELECT ID, Namn, Text, Datum FROM nyheter ORDER BY Datum DESC LIMIT 0,3
för att plocka ut de tre senaste nyheterna.Sv:Hämta data från flera tabeller
Sv: Hämta data från flera tabeller
SELECT * FROM
(
SELECT ID, Namn, Text, Datum FROM Nyhet1
UNION ALL
SELECT ID, Namn, Text, Datum FROM Nyhet2
UNION ALL
SELECT ID, Namn, Text, Datum FROM Nyhet3
)
ORDER BY Datum DESC
/JohanSv:Hämta data från flera tabeller
Har följande kod nu men funkar inte redigt :S
<%
'############### PAGING-SYSTEM ###############
Set objRS = objConn.Execute("SELECT count(*) AS intRecords FROM nyhet1, nyhet2, nyhet3")
strCount = 0
intRecords = objRS("intRecords")
intPagesize = 5
intPages = Int(((intRecords) + (intPageSize) - 1) / (intPageSize))
On Error Resume Next
intPage = CLng(Request.Querystring("sida"))
If Err then
intPage = 1
End if
On Error Goto 0
If int(intPage) = "" OR int(intPage) < 1 then
intPage = 1
End If
'############### NYHETER ###############
Set objRS=objConn.Execute("SELECT * FROM
(
SELECT ID, Namn, Text, Datum FROM nyhet1
UNION ALL
SELECT ID, Namn, Text, Datum FROM nyhet2
UNION ALL
SELECT ID, Namn, Text, Datum FROM nyhet3
)
ORDER BY Datum DESC")
objRS.Move((intPage*intPagesize)-intPagesize)
Do
If objRS.EOF then
Exit Do
Response.Write "<b>Det finns inga nyheter!</b>"
ElseIf strCount = intPageSize then
Exit Do
End If
' Räknar posterna
strCount = strCount + 1
%>
får följande felmeddelande:
Feltyp:
Microsoft JET Database Engine (0x80040E14)
Syntaxfel (operator saknas) i frågeuttrycket '<id'.
news.asp, line 7
rad 7 är: Set objRS = objConn.Execute("SELECT count(*) AS intRecords FROM nyhet1, nyhet2, nyhet3")
Sv: Hämta data från flera tabeller
Du kan inte ha radbrytning i sql-satsen där nere, gör såhär istället:
Set objRS=objConn.Execute("SELECT * FROM (SELECT ID, Namn, Text, Datum FROM nyhet1 UNION ALL SELECT ID, Namn, Text, Datum FROM nyhet2 UNION ALL SELECT ID, Namn, Text, Datum FROM nyhet3) ORDER BY Datum DESC")
/JohanSv: Hämta data från flera tabeller
dvs lägga till ett extra fält som heter kategori, och använda tal,
kategori 1 för nyheter som ligger på ena sidan kategori 2 för ena undersidan osv...
Lättare att administrera också