Avatar billede badmanndk Nybegynder
26. april 2004 - 21:41 Der er 12 kommentarer og
1 løsning

udskrive en nyhedsoversigt med SQl, med et max antal tegn.

Jeg har lavet et nyhedsscript, og på forsiden vil jeg gerne vise de 5 nyeste nyheder med overskrift, samt ca. 50 tegn fra selve nyheden, og så laver jeg et link, så man kan læse resten.
jeg har en tabel i db'en der hedder nyheder, som indeholder id, overskrift, samt indhold.
Hvordan skal SQL sætningen se ud.?

På forhånd tak.
Avatar billede eagleeye Praktikant
26. april 2004 - 21:43 #1
Du kan lave det sådan her:

SQL "SELECT TOP 5 id, overskrift, left(indhold, 50) as aindhold from nyheder ORDER BY id"


Så kan du bruge aindhold som et kolonnenavn når du udskriver rs("aindhold")
Avatar billede eagleeye Praktikant
26. april 2004 - 21:44 #2
og så lige med = tegn og DESC sådan du får de nyeste først :)

SQL = "SELECT TOP 5 id, overskrift, left(indhold, 50) as aindhold from nyheder ORDER BY id DESC"
Avatar billede steen_hansen Forsker
26. april 2004 - 21:44 #3
Den første først:

SQL = "SELECT TOP 5 * FROM nyheder DESC"
Set RS = Conn.Execute (SQL)
Avatar billede steen_hansen Forsker
26. april 2004 - 21:45 #4
Ups, han er sq hurtig, ham eagleeye :o)
Avatar billede badmanndk Nybegynder
26. april 2004 - 21:57 #5
den melder fejl, på denne SQL sætning:
"SELECT TOP 5 id, overskrift, left(indhold, 50) as aindhold from nyheder ORDER BY id DESC"

Det er måske fordi jeg gør det lidt anderledes:

Dim showNews
Set showNews = objConn.Execute("SELECT TOP 5 id, overskrift, left(indhold, 50) as aindhold from nyheder ORDER BY id DESC")

det skriver jeg så ud med: <%=showNews.Fields("overskrift")%>
jeg har ikke været vant til at bruge "rs"-sætningen... jeg har godt nok lagt mærke til at der mange der skriver rs, hvad står det for..?
Avatar billede eagleeye Praktikant
26. april 2004 - 21:58 #6
Ok, rs står for recordset det er det sammet som det du kalder showNews

Hvilken fejl får du?
Avatar billede steen_hansen Forsker
26. april 2004 - 21:59 #7
RecordSet

Godt du ser bort fra mit indlæg, der var en mangel
Avatar billede badmanndk Nybegynder
26. april 2004 - 22:02 #8
nu ser siden sådan ud, og den melder først fejl ved linje 19, det er der hvor jeg vil udskrive indholdet.

-----------------------------------------------------------------------------------
<%
Call OpenDatabase
Dim showNews
Set showNews = objConn.Execute("SELECT id, dato, overskrift, left(indhold, 50) from nyheder ORDER BY id DESC")
%>


<%
While NOT showNews.EOF
%>
<table width="100%" border="0" cellspacing="5" cellpadding="0">
  <tr>
    <td><div class="headline"><%=showNews.Fields("dato")%></div></td>
  </tr>
  <tr>
    <td><div class="news"><a href="showNews.asp?id=<%=showNews.Fields("id")%>"><%=showNews.Fields("overskrift")%></a></div></td>
  </tr>
  <tr>
  <td><% =showNews.Fields("indhold")%></td>
  </tr>
</table>
<%
showNews.MoveNext
Wend
%>
<%
Call CloseDatabase
%>
Avatar billede badmanndk Nybegynder
26. april 2004 - 22:04 #9
Fejltype:
ADODB.Recordset (0x800A0CC1)
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
Avatar billede eagleeye Praktikant
26. april 2004 - 22:04 #10
Prøv at rette denne linje:

  <td><% =showNews.Fields("indhold")%></td>

Til denne hvor der står a foran indhold, da aindhold er et alias for kolonnen indhold, et alias kan ikke hedde det samme som et kolonnenavn derfor a'et foran:

  <td><% =showNews.Fields("aindhold")%></td>
Avatar billede eagleeye Praktikant
26. april 2004 - 22:06 #11
Sådan som det er vist er det databasen som klipper kolonnen indhold ned til 50 tegn. Man kunne også hente alt fra kolonnen indhold og så klippe det til 50 tegn i selv ASP koden.
Avatar billede badmanndk Nybegynder
26. april 2004 - 22:08 #12
> eagleeye..
Det virker nu, jeg havde fjernet "as aindhold" i SQL sætningen, fordi jeg troede den var overflødig, så den kom tilbage, og så rettede jeg <td><% =showNews.Fields("aindhold")%></td>

du får point...
Takker
Avatar billede eagleeye Praktikant
26. april 2004 - 22:12 #13
Ok så er her et svar :)
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