Avatar billede gallagher Nybegynder
28. januar 2003 - 15:39 Der er 19 kommentarer og
1 løsning

Nyheder top 5

hejsa !

Jeg er ved at lave en nyheds ting og vil kun have de 5 nyeste nyheder til at være der. Her er mit script:

jeg bruger Access

<%
Response.Buffer = True

' Connection til database
Set Con = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("nyheder.mdb")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

' Her hiver vi indholdet af databasen ud, sorterer dem efter dato
    Sql = "SELECT TOP 5 * FROM nyheder ORDER BY Dato DESC"
    Set Record =  Con.Execute(Sql)

%>


<html>

<head>
<link rel="stylesheet" href="news.css" type="text/css" media="screen">

</head>

<body>
<% Do while Not Record.EOF %>

  <table border="0" cellspacing="0">
    <tr>
      <td><div class='dato'><% Response.Write Record("Dato")%></td>
    </tr>
    <tr>
      <td colspan="2"><div class='tekst'><% Response.Write Record("Nyhed")%></td>
    </tr>
        <tr>
      <td align="right"><div class='slut'><% response.Write Record("Forfatter")%></td>
    </tr>
  </table>
<%
Record.MoveNext
Loop
%>

</body>
</html>
<%
' Lukke connection
Con.Close
Set Con = Nothing
%>
Avatar billede arnvig Nybegynder
28. januar 2003 - 15:41 #1
Hvad er spørgsmålet ?
Avatar billede gallagher Nybegynder
28. januar 2003 - 15:42 #2
at der kun vises 5 nyheder og det er de nyeste ???
Avatar billede totaliorden Nybegynder
28. januar 2003 - 15:42 #3
Sql = "SELECT TOP 5 * FROM nyheder ORDER BY Dato DESC LIMIT 5"
Avatar billede gallagher Nybegynder
28. januar 2003 - 15:45 #4
Den skriver dette

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i ORDER BY-delsætningen.
/portør/visnyheder.asp, line 11
Avatar billede totaliorden Nybegynder
28. januar 2003 - 15:48 #5
Så prøv med 0,5  istedet for 5 - Den siger nok det samme alligevel
Avatar billede gallagher Nybegynder
28. januar 2003 - 15:51 #6
totaliorden >> Yes den gør, HMM
Avatar billede totaliorden Nybegynder
28. januar 2003 - 15:54 #7
Det virker i php. Men da sql koder er de samme, så burde det virke i asp også.
Fatter ikke lige hvorfor det ikke gør....
Avatar billede totaliorden Nybegynder
28. januar 2003 - 15:56 #8
Prøv det her: Sql = "SELECT * FROM nyheder ORDER BY Dato DESC LIMIT 5"
Avatar billede totaliorden Nybegynder
28. januar 2003 - 15:57 #9
Hvis det ikke virker, så prøv: Sql = "SELECT * FROM nyheder ORDER BY dato DESC LIMIT 5"
Avatar billede gallagher Nybegynder
28. januar 2003 - 16:00 #10
tja den skriver at der er fejl i ORDER BY delsætningen
Avatar billede totaliorden Nybegynder
28. januar 2003 - 16:01 #11
ja, men det er alså rigtigt, så det må være en fejl i databasen
Avatar billede gallagher Nybegynder
28. januar 2003 - 16:02 #12
ok, hvordan det
Avatar billede Jman Praktikant
28. januar 2003 - 16:03 #13
er du sikker på at din db hedder nyheder og dit dato-felt hedder dato ?
Avatar billede gallagher Nybegynder
28. januar 2003 - 16:05 #14
ja det skulle det
Avatar billede Jman Praktikant
28. januar 2003 - 16:13 #15
står der noget i dit dato-felt (altså hvis du kigger i databasen)
Avatar billede gallagher Nybegynder
28. januar 2003 - 16:16 #16
det eneste der står er datoen når folk skriver deri
Avatar billede Jman Praktikant
28. januar 2003 - 16:28 #17
hmm - jeg kunne forestille mig at du ikke kan sortere efter dato, hvis de sidste 5 poster ikke indeholder dato.

så skal du nok definere din select:
Sql = "SELECT TOP 5 Dato, nyhed, forfatter FROM nyheder ORDER BY Dato DESC"
- jeg er dog ikke sikker på at det virker...

Men du kunne jo evt. lave post'en så dato selv puttes ind [datenow()]. På den måde er der dato-felter i alle poster og så burde du være ude over problemet
Avatar billede gallagher Nybegynder
28. januar 2003 - 16:36 #18
Dette er stedet hvor der instastes nyheder.. Hvis det kan hjælpe lidt

<%

Response.Buffer = True

' Funktion der fikser quotes...
FUNCTION fixQuotes( theString )
    fixQuotes = Replace( theString, "'", "''" )
END FUNCTION

' Hent data fra formular   
    Nyhed = Request( "Nyhed" )
    Forfatter = Request( "Forfatter" )

' Connection til database.    
Set Con = Server.CreateObject( "ADODB.Connection" )
    DBPath = "DBQ=" & server.mappath("nyheder.mdb")
    Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

' ... Ogsaa saetter vi vores data fra formularen ind i databasen
IF Request.Servervariables("Content_Length") > 0 THEN
    Sql = "INSERT INTO nyheder (Dato, Nyhed, Forfatter) VALUES('" & Date() & "','" & fixQuotes( Nyhed ) & "','" & fixQuotes( Forfatter ) & "')"
    Con.Execute Sql

' Og her skriver vi lige en lille besked om at nu er nyheden tilfoejet   
    Response.Write "<strong>Tak for din nyhed. Den er blevet tilf&oslash;jet til databasen. </strong>"
   
END IF

%>



<body>

<h1>Skriv NYHED</h1>
<br>


<br><br>

<form action="nyhed.asp" method="POST" target="_self">
<table border="0" width="600">
    <tr>
        <td valign="top" width="150">Nyhed</td>
        <td><textarea cols="30" rows="8" name="Nyhed"></textarea></td>
    </tr>
    <tr>
        <td>Forfatter</td>
        <td><input type="text" name="Forfatter"></td>
    </tr>
    <tr>
        <td colspan="2" align="center"><input type="submit" value=" - SKRIV - "></td>
    </tr>
</table>
</form>

</body>
Avatar billede gallagher Nybegynder
28. januar 2003 - 16:58 #19
Har selv fundet fejlen. derfor lukker jeg dette spørgsmål...

Sql = "SELECT TOP 5 * FROM nyheder ORDER BY nyheder.ID DESC"
Avatar billede gallagher Nybegynder
28. januar 2003 - 16:59 #20
Ellers tak for hjælpen :-)
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