Avatar billede gatez Nybegynder
30. september 2001 - 23:04 Der er 13 kommentarer og
1 løsning

Database Script...

Hejsa !

Dette script bruger jeg til at vise de 10 sidste nyheder fra min database:

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"../nyheder/news.mdb\")

SQLstmt = \"select top 10 * FROM news ORDER BY ID desc;\"
Conn.Execute (SQLstmt)
Set vis = conn.Execute(SQLstmt)
%>
<%
DO WHILE NOT vis.EOF
overskrift = vis(\"overskrift\")
ID = vis(\"ID\")
link = vis(\"link\")
%>



  <tr>
    <td width=\"100%\" height=\"10\">
    <b><font face=\"Verdana\" size=\"1\"><a href=\"bilernews.asp?id=<%=ID%>\"><%=overskrift%></a></b></font><br>
    <br>
    </td>
  </tr>


<%
vis.MoveNext
LOOP
vis.Close
Response.Write \"</TABLE>\"

conn.Close
Set conn = nothing
Set SQLstmt = nothing
%>
-----------KODE SLUT----------


Som sagt viser den de 10 sidste nyheder sådan:

Nyhed 1
Nyhed 2
Nyhed 3
Nyhed 4
Nyhed 5
Nyhed 6
Nyhed 7
Nyhed 8
Nyhed 9
Nyhed 10

Men, hvordan gør jeg sådan så den KUN viser \"Nyhed 2\" ??
Avatar billede eagleeye Praktikant
30. september 2001 - 23:08 #1
Du kan bruge WHERE til at vælge en bestemt record (nyhed) fra databasen:

SQLstmt = \"select * FROM news WHERE ID=\" & valgt_nyhed & \";\"
Avatar billede gatez Nybegynder
30. september 2001 - 23:11 #2
Jamen så viser den et bestemt ID.... Dvs. at når jeg tilføjer en ny nyhed så virker scriptet ikke mere.... Det skal være så det altid er Nyhed 2 ud fra databasen den viser....
Avatar billede gatez Nybegynder
30. september 2001 - 23:13 #3
Hvad skal jeg skrive i stedet for \"valgt_nyhed\" ??
Avatar billede eagleeye Praktikant
30. september 2001 - 23:13 #4
nyhed 2 har vel et bestemt ID i databasen?

SQLstmt = \"select * FROM news WHERE ID=2;\"
Avatar billede gatez Nybegynder
30. september 2001 - 23:16 #5
Jamen når jeg så tilføjer en ny nyhed i databasen så viser den jo Nyhed 3.... Men det skal den ikke....
Avatar billede gatez Nybegynder
30. september 2001 - 23:19 #6
Nyhed 2 har jo ikke et bestemt ID i databasen... Når jeg tilføjer en ny nyhed så er Nyhed 2 jo en anden nyhed med et andet ID...
Avatar billede eagleeye Praktikant
30. september 2001 - 23:19 #7
Typisk har man et felt (ID) som er autonummer og be opdateres automatisk når man indsætter en ny record. Det benytter eks.vis til at vælge en bested record hvor man kender ID\'et. Det skulle ikke ændre sig når man indsætte nye record. Den nye record skulle bare få det næste nummer i rækken.
Avatar billede gatez Nybegynder
30. september 2001 - 23:22 #8
Jeg skal bare kunne hente den anden sidste nyhed i databasen.... Altså den skal ikke vise den samme nyhed hele tiden.
Men nr. 2 sidste nyhed der er intastet i databasen...
Avatar billede fastpoint Nybegynder
30. september 2001 - 23:25 #9
<%


PageSize = 10

    Conn_String = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"blah.mdb\")
If Request(\"PageTo\") <> \"\" Then
    strPageTo = Request(\"PageTo\")
    If strPageTo <> \"\" Then
        nPageTo = int(strPageTo)
        If nPageTo <  1 Then
            nPageTo = 1
        End If
    Else
        nPageTo = 1
    End If
    Set RS = Session(\"ListingRS\")
    RS.AbsolutePage = nPageTo

else
    Set Conn=Server.CreateObject(\"ADODB.Connection\")
    Conn.ConnectionTimeout=15
    Conn.CommandTimeout=30

    Conn.Open Conn_String
    Set Cmd=Server.CreateObject(\"ADODB.Command\")
    Set RS=Server.CreateObject(\"ADODB.Recordset\")
    Cmd.CommandType = 1
    Set Cmd.ActiveConnection = Conn
    Cmd.CommandText=\"SELECT * From blahblahdatabasenavn order by dato desc;\"
           
    RS.Open Cmd, , 1, 1
    RS.PageSize = PageSize
    Set Session(\"ListingRS\") = RS
    nPageTo = 1
    If not (RS.BOF and RS.EOF) Then
        Set RS = Session(\"ListingRS\")
        RS.AbsolutePage = nPageTo
    End If
   
end if
    If RS.EOF Then
    Response.Write(\" <br><br><font size=4 color=\'red\'<b>Intet fundt <br></b></font><br>\")
Else

    nRowCount = RS.PageSize


    While not RS.EOF and nRowCount > 0
        Count = 0   
        for i = 1 to Count           
        next
        dagar=DateDiff(\"d\", Dato, RS(\"Dato\"))+2
if dagar >= 0 then
        %>



jeg ved ikke om du kan bruge den her til noget
Avatar billede eagleeye Praktikant
30. september 2001 - 23:26 #10
Arh på den måde du kan bruge:

SQLstmt = \"select top 2 * FROM news ORDER BY ID;\"

Så er det den første i recordsetet.
Avatar billede gatez Nybegynder
30. september 2001 - 23:29 #11
--> Eagleeye:  2 sec. jeg prøver lige... :-)
Avatar billede eagleeye Praktikant
30. september 2001 - 23:29 #12
Der skal vist lige DESC på... Den her vælger kun 1:

SELECT top 1, * FROM news WHERE ID in (SELECT top 2 ID FROM news ORDER BY ID DESC);

Jeg ved faktisk ikke om der findes en smartere måde hvor man let vælger den anden nyeste record.
Avatar billede gatez Nybegynder
30. september 2001 - 23:30 #13
--> Eagleeye:

Nu viser den de 2 sidste nyheder.... Altså både Nyhed 1 og Nyhed 2.

Men den må kun vise Nyhed 2 og ikke Nyhed 1.
Avatar billede gatez Nybegynder
30. september 2001 - 23:32 #14
Sådan TAK!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester