Avatar billede psyclown Nybegynder
20. februar 2002 - 10:16 Der er 16 kommentarer og
1 løsning

hva går der galt ?

Når jeg bruger det her script, så udskriver den alle nyhederne og ikke de 5 sidste, som den skal...hva går der galt, jeg har set scriptet igennem flere gange og har også fået en ven til at kigge på det, men der er ikke nogen af os der kan finde nogle fejl i det.

<!--#include file="functions.asp"-->
<!--#include file="dns_open1.asp"-->
<%
    If request("ID") <> "" Then
        NID = request("ID")
        If NID = "" Then
            response.redirect "index.asp"
        Else
            SQL = "SELECT * FROM [Nyheder] WHERE ID = "&NID
            rstemp.Open SQL, conntemp, 1
%>
<!--#include file="dato.asp"-->
<%
    Response.Write "<table align=""center"" border=""0"" width=""100%"" cellpadding=""0"" cellspacing=""0""><tr>"   
    Response.Write "<tr><td width=""100%"">"&dag&" d. "&day(rstemp("Dato"))& maaned &year(rstemp("Dato"))&"<br></td></tr>"
    Response.Write "<tr><td width=""100%""><b><font size=""4""><br>"& rstemp("OverSkrift") &"</font></b></td></tr></table>"
    Response.Write "<table align=""center"" border=""0"" width=""100%"" cellpadding=""0"" cellspacing=""0""><tr>"
    Response.Write "<td width=""100%"">"& rstemp("Nyhed") &"</td></tr></table><br>"
    End If
%>
<!--#include file="dns_close.asp"-->
<%
    Else
%>
<!--#include file="dns_open2.asp"-->
<%
    SQL = "SELECT TOP 5 * FROM [Nyheder] ORDER BY Date DESC"
    Set rstemp = conntemp.execute(SQL)
    If rstemp.EOF or rstemp.BOF Then
        Response.Write "Der er ingen nyheder i databasen!"
    Else
        Do Until rstemp.EOF

            Response.Write "<table align=""center"" border=""0"" width=""100%"" cellpadding=""0"" cellspacing=""0""><tr>"
            Response.Write "<td width=""100%""><b><u><font size=""6"" color=""#637080""><a href=""index.asp?id="& rstemp("id") &""">"& rstemp("OverSkrift") &"<br></a></font></u></b></td></tr></table>"
            Response.Write "<table align=""center"" border=""0"" width=""100%"" cellpadding=""0"" cellspacing=""0""><tr>"
            Response.Write "<td width=""100%"">"& rstemp("Nyhed") &"</td></tr></table>"
            Response.Write "<br>"
            rstemp.MoveNext
        loop
        rstemp.Close : Set rstemp = Nothing
%>
<!--#include file="dns_close.asp"-->
<%                       
        End If
    End If
%>
Avatar billede medions Nybegynder
20. februar 2002 - 10:18 #1
SQL = "SELECT TOP 5 FROM [Nyheder] WHERE ID = "&NID

//>Rune
Avatar billede psyclown Nybegynder
20. februar 2002 - 10:23 #2
undskyld, men jeg tror ikke at jeg fik det forklaret helt...det er den nederste del af skribtet, hvor nr. 2 SQL streng er, der står allerede at den skal udskrive de 5 nyeste.
Avatar billede coltau Juniormester
20. februar 2002 - 10:29 #3
Ja det lyder jo underligt at din SQL-sætning returnere flere end 5 poster - men du kunne jo nøjes med at udskrive de 5. ?

Cnt = 5
Do Until rstemp.EOF or Cnt=0
...
rstemp.MoveNext
Cnt = Cnt - 1
loop

Ikke nogen optimal løsning.
Avatar billede misbruger Nybegynder
20. februar 2002 - 10:40 #4
hvilke db bruger du????
Avatar billede psyclown Nybegynder
20. februar 2002 - 10:51 #5
access 2000 XP
Avatar billede psyclown Nybegynder
20. februar 2002 - 10:54 #6
kan det hjælpe at jeg reparer databasen ?
Avatar billede misbruger Nybegynder
20. februar 2002 - 11:16 #7
SQL = "SELECT * FROM Nyheder ORDER BY Date DESC"

...og så skift din Do løkke ud med en For

For i = 1 to 5

<din kode></din kode>

Next
Avatar billede misbruger Nybegynder
20. februar 2002 - 11:16 #8
.... og nej, du skal kun reperer db'en hvis den er i stykker!
Avatar billede psyclown Nybegynder
20. februar 2002 - 11:23 #9
Jeg ved ikke om jeg ikke forklarede det ordenligt, men jeg spurgte om der var nogen der viste, hvordan jeg fik det til at virke og ikke om jeg kunne lave det på en anden måde. Jeg ved godt at man kan lave det på mange andre måder, men at bruge en SQL streng, at lidt mere optimalt og det burde jo også virke.
Avatar billede psyclown Nybegynder
20. februar 2002 - 11:25 #10
misbruger: det eksempel du har skrevet, er jo det samme som at skrive det som caltau har postet, så det vil ikke komme til at virke mere optimalt af den grund.
Avatar billede coltau Juniormester
20. februar 2002 - 11:29 #11
Din kode er i orden - og ja - den skal virke.
Hvis "TOP 5" ikke virker kan du som det første prøve at reparere databasen - hvis det ikke hjælper vil jeg forslå at du undersøger fejlen nærmere. Evt. med en test.asp der kun indeholder et udtræk hvor du tester "TOP 5" og/eller kommandoen "LIMIT"
Avatar billede coltau Juniormester
20. februar 2002 - 11:30 #12
Vi andre kan jo af gode grunde ikke gøre det. !
Avatar billede psyclown Nybegynder
20. februar 2002 - 11:37 #13
Jeg spurgte jo også om man kunne reparer ens database, men det måtte man ikke for misbruger, andet end hvis databasen var i stykker. Det hjælper jo ikke at jeg bruger andre koder til at udskrive det med, af den grund for jeg ikke mit eget til at virke.
Avatar billede coltau Juniormester
20. februar 2002 - 13:08 #14
Du kan kun få dit eget til at virke ved at isolere problemet. Lav en lille asp-kode der laver et udtræk på 5 og konstatér at det virker. Så har du i det mindste noget at gå ud fra.

Sætningen:
<!--#include file="dns_open2.asp"-->
indeholder forhåbentligt ikke noget kode der kan have indflydelse på det der vises. ?
Avatar billede psyclown Nybegynder
20. februar 2002 - 14:07 #15
hvis jeg nu havde kaldt den dsn_open2.asp, så havde måske bedre forstået det, men den åbner databasen, det er det eneste den gør
Avatar billede psyclown Nybegynder
20. februar 2002 - 14:09 #16
Det jeg har brugt i den kode der, har jeg også haft til at virke før, men ligepludselig, så virker det ikke, jeg tror bare at jeg prøver at lave det helt forfra, hvis jeg ikke kan få det til at virke på andre måder.
Avatar billede coltau Juniormester
20. februar 2002 - 17:33 #17
Jeg ville lede efter fejlen hvis det var mig. !
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