hur visar du informationen ? med ett ID eller ?
I sådana fall kan du ju alltid lista de 5 senaste ändringarna!!!
20 svar · 510 visningar · startad av soffan76
Hej!
Jag har byggt ett intranät på mitt jobb.
Vissa delar är databas-styrt.
Nu vill mina kollegor kunna se en lista på de senaste ändringarna och kunna klicka sig direkt dit istället för att leta runt och se om nåt hänt. Hur ska jag lösa detta? Nån som har nån erfarenhet. De vill ha en liten lista på de senaste ändringarna alltså.
Typ såhär:
020516 10.15 nya partybilder från biljarden Sofia
020516 08.00 redigerad medarbetare Uffe
020515 16.15 ny telefonlista CDC Sofia
020513 08.00 Kaffeansvarig v. 20; Lotta Sofia
hur visar du informationen ? med ett ID eller ?
I sådana fall kan du ju alltid lista de 5 senaste ändringarna!!!
Kan du förklara lite närmare? Jag har olika tabeller med unika ID-nummer. Skulle jag kunna lägga till ett hidden-fält med datum i kanske? Alltså man gör ett inlägg på anslagstavlan t.ex. och när man skickar informationen till databasen så skickar man med det dolda datum-fältet som läggs in.
Senaste
SQL = "Select * from nyheter order by datum DESC"
det visar dom senaste... eller så kan du också använda
SQL = "Select * top 5 from nyheter order by datum DESC"
...och om det gäller flera tabeller, då blir det flera SQL-satser va?
SQL1 = "Select * from nyheter order by datum DESC"
SQL2 = "Select * from medarbetare order by datum DESC"
SQL3 = "Select * from anslagstavlan order by datum DESC"
jupp, förutom ifall du inte vill ha sammanlagt från alla. alltså!
Tror det skall funka något såhär
SQL = "Select * top 5 FROM nyheter, medarbetare, anslagstavlan ORDER BY datum DESC"
Hämtas de fem senaste från varje tabell då? Först de fem senaste från nyheter, sen de fem senaste från medarbetare o.s.v.....eller?
nä, då lägger du ihop alla tabellerna och tar ut den 5 senaste datumen...
Vill du ha ha ex de 5 senaste från varje tabell så får du skriva som du gjort.. bara att lägga till top 5 vid SELECT
Kanske en dum fråga med hur gör jag praktiskt detta:
då lägger du ihop alla tabellerna
Gör jag en sån där fråga i Access då?
Som jag skrev innan...
SQL = "Select * top 5 FROM nyheter, medarbetare, anslagstavlan ORDER BY datum DESC"
Ok, sorry, är lite trött. Tack för hjälpen!
Jag får nu detta fel...
[Microsoft][ODBC Microsoft Access Driver] The specified field 'datum' could refer to more than one table listed in the FROM clause of your SQL statement.
/intranet/senaste.asp, line 14
SQL-satsen ser ut som följer:
SQL = "Select top 5 datum FROM lankar, medarbetare, anslagstavla ORDER BY datum DESC"
Vad gör jag för fel? :(
Fältet Datum finns i mer än en tabell. Vilket av dem vill du sortera på?
SQL = "Select top 5 [b]medarbetare.[/b]datum FROM lankar, medarbetare, anslagstavla ORDER BY [b]medarbetare.[/b]datum DESC"
Sen ser frågan lite farlig ut, men vi får väl se vad du får för resultat...
Red: jag såg att det fältet också selekterades med frågan, så då får du ange tabellens namn där också.
Mvh,
Ska försöka klargöra. Jag har tre tabeller vilka alla innehåller varsitt fält som heter datum. När användarna uppdaterar eller lägger in en ny post så läggs datumet in. Jag vill nu kolla i alla tre tabellerna och ta de senaste fem inläggen från dessa tabeller. Då kanske det blir ett inlägg från en tabell, två från den andra och två från den tredje.
Hmm. Tabellerna ser inte likadana ut, eller hur?
Problematiskt. Om du använder Access är det dessutom så att top 5 måste betyda att fem poster returneras. Det är minst fem som gäller, beroende på om sorteringsfältet har unika värden eller inte. Lagrar du även tid i datumkolumnen bör det väl gå bra.
Nu kanske hela huvet inte vaknat riktigt ännu, men det jag kan komma på om tabellerna inte ser likadana ut, är att du ställer en selectfråga som med union lägger ihop resultatet av delfrågor mot de olika tabellerna, och sedan hämtar posterna enligt resultat. Klurigt, klurigt. En sådan union-fråga kan se ut någonting sånt här, men jag är inte helt hundra på att den är perfekt:
SQL = "Select top 5 * from (select datum, 'medarbetare' as tabell " & _
"from medarbetare union select datum, 'lankar' from lankar union " & _
"select datum, 'anslagstavla' from anslagstavla) order by Datum desc"
Mvh,
Jodå, det funkade! Helt strålande! Så här blir listan:
datum: 2002-05-17
datum: 2002-05-17
datum: 2002-05-16
datum: 2002-05-16
datum: 2002-05-15
Fast nu kommer nåt nytt klurigt. Hur ska man lösa problemet att man ska kunna klicka sig vidare till stället där uppdateringen gjorts? Det kanske inte går?
Redigerat:
Man kanske får lösa det som så att man skriver:
Senaste uppdateringen i anslagstavlan gjordes: 2002-05-16
Senaste uppdateringen på länksidan gjordes: 2002-05-16
Den select-fråga jag gav dig har ju även ett andra fält, som talar om för dig vilken tabell den posten kommer ifrån.
Använd dig av den och hämta top 1 från den tabell som specificeras i det fältet.
Mvh,
Om du har lust att visa hur man ska skriva då vore jätte-bussigt. Mina SQL-kunskaper sträcker sig inte så långt som du märker.
När du listar upp datumen från recordsetet så kan du ju skapa en länk av det och skicka tabellnamnet som querystring:
<a href="nyaste.asp?tabell=<%=objRS("tabell")%>">Klicka här!</a>
Sedan använder du bara den querystringen på sidan.asp direkt i SQL-frågan:
SQL = "SELECT TOP 1 * FROM " & request.querystring("tabell") & " ORDER BY Datum DESC"
Resten gör du bara som du brukar.
Mvh,
Du är smart du!
Jag tackar så mycket för hjälpen!
Du har räddat mig ännu en gång. :)