Avatar billede quercus Nybegynder
21. maj 2001 - 10:11 Der er 31 kommentarer og
1 løsning

Vis starten af nyhed

Jeg har et sted herinde set løsningen på mit spørgsmål, kan bare ikke finde det (glæder mig til at man på Eksperten kan søge på mere end overskriften).

Jeg har en database med nogle nyheder og disse viser jeg på en .aps side. Jeg ønsker at vise overskriften sat X antal linier eller ord og så et \"... Læs mere\"

Hvordan gør man dette ?
Findes der extension til Dreamweaver, eller skal man bruge script, eller hvordan ?

Det er jo set 100 gange før, men hvordan ?
Avatar billede bjarke-b Nybegynder
21. maj 2001 - 10:15 #1
<%=Left(rs(\"felt\"),30)%>...
Avatar billede bjarke-b Nybegynder
21. maj 2001 - 10:16 #2
du erstatter rs(\"felt\") med den variabel du vil have, og 30 er antallet af tegn
Avatar billede quercus Nybegynder
21. maj 2001 - 10:33 #3
Mit felt i databasen hedder \'news_text\'.

Men jeg ønsker ikke at den skal vis X antal tegn, det vil ikke se godt ud.
Den skal kunne vise noget fornuftigt, f.eks. de første to sætninger (frem til punktum nr. 2) eller første 50 ord.
Avatar billede netsrac Praktikant
21. maj 2001 - 14:42 #4
<%
counter = 1
do while counter <= 50
tmp = tmp & mid(rs(\"felt\"), counter, 1)
if mid(rs(\"felt\"), counter, 1) = \"\" then
counter = counter + 1
end if
loop
response.write(tmp)
%>
Avatar billede netsrac Praktikant
21. maj 2001 - 14:43 #5
<%
counter = 1
do while counter <= 50
tmp = tmp & mid(rs(\"news_text\"), counter, 1)
if mid(rs(\"news_text\"), counter, 1) = \" \" then
counter = counter + 1
end if
loop
response.write(tmp)
%>
Avatar billede netsrac Praktikant
21. maj 2001 - 14:48 #6
eller:


<%counter = 1
start = 1
do while counter <= 50
pos = instr(start, rs(\"news_text\"), \" \")
start = pos + 1
counter = counter + 1
loop
tmp = left(rs(\"news_text\"), pos)
response.write(tmp) %>
Avatar billede quercus Nybegynder
21. maj 2001 - 16:00 #7
Hæ :)
Jeg sidder ikke lige så jeg har mulighed for at tjekke dine indlæg.
Men når det nu er dig (her tænker jeg på din placering mv.), så accepterer jeg dit svar uden tøven. Er ret sikker på at det virker.

Har set mange vilde ting fra din side før.

Takker for hjælpen....

;)
Avatar billede netsrac Praktikant
21. maj 2001 - 16:43 #8
Hvis det ikke virker må du jo lige sige til, så vi kan få det til at virke :-)
Avatar billede quercus Nybegynder
22. maj 2001 - 21:50 #9
Hmmm, får den her på dit første forslag:
---
ADODB.Fields error \'800a0cc1\'

ADO could not find the object in the collection corresponding to the name or ordinal reference requested by the application.

/webtemplates/news.asp, line 126
---
Skal jeg lave object og dim eller ??
Avatar billede netsrac Praktikant
22. maj 2001 - 21:52 #10
Ja på det første forslag er det fordi jeg har brugt rs(\"felt\") istedet for rs(\"news_text\")

Jeg vil iøvrigt anbefale dig at bruge nr 3
Avatar billede quercus Nybegynder
22. maj 2001 - 21:58 #11
Hvor dum har man lov til være !!!
Lidt for hurtig på copy/paste :)
Avatar billede quercus Nybegynder
22. maj 2001 - 22:03 #12
Ok, bruger det sidste.
Har ændret lidt i det

<%
counter = 1
start = 1
do while counter <= 50
pos = instr(start, rsNewsTop(\"news_text\"), \" \")
start = pos + 1
counter = counter + 1
loop
tmp = left(rsNewsTop(\"news_text\"), pos)
response.write(tmp)
%>

Har ændret rs til rsNewsTop som svare til et SQL = SELECT news_text FROM tblNews

Nu før jeg fejlsen


Microsoft VBScript runtime error \'800a005e\'

Invalid use of Null: \'start\'

/webtemplates/news.asp, line 128

? :(
Avatar billede netsrac Praktikant
22. maj 2001 - 22:19 #13
<%
counter = 1
start = 1
do while counter <= 50
if start <> Null then
pos = instr(start, rsNewsTop(\"news_text\"), \" \")
start = pos + 1
counter = counter + 1
else
counter = 51
end if
loop
tmp = left(rsNewsTop(\"news_text\"), pos)
response.write(tmp)
%>
Avatar billede quercus Nybegynder
22. maj 2001 - 22:47 #14
Ingen fejl, men også kun tom tabel tilbage :(
Den vælger altså ingen ting ?
Avatar billede netsrac Praktikant
22. maj 2001 - 22:57 #15
Har du 50 mellemrum i teksten ?
Avatar billede quercus Nybegynder
22. maj 2001 - 23:05 #16
øhhh, ja ?
Avatar billede netsrac Praktikant
22. maj 2001 - 23:07 #17
Hm hvilkn linie er linie 128 i den du skrev før ?
Avatar billede quercus Nybegynder
22. maj 2001 - 23:16 #18
ahh, shit ???
Det var: start = 1
Avatar billede quercus Nybegynder
22. maj 2001 - 23:22 #19
Hvis jeg smider det her:

response.write(start) & \" \"
response.write(counter) & \" \"

På lige før \'loop\'

Så skriver den 1 51 1 51 ud i html\'en ?
Hvad siger det om start og tæller ?
Avatar billede netsrac Praktikant
22. maj 2001 - 23:25 #20
Ta den originale du smed føsrt og prøv at ændre linien til
start = int(1)
Avatar billede quercus Nybegynder
22. maj 2001 - 23:35 #21
Hmmm, jeg driver dig jo til vanvid :)
Samme fejl:
Invalid use of Null: \'start\'
/webtemplates/test_newstop2.asp, line 35

35:
pos = instr(start, rsNewsTop(\"news_text\"), \" \")

Med ændring til start = int(1)
Avatar billede netsrac Praktikant
22. maj 2001 - 23:37 #22
pos = instr(int(start), rsNewsTop(\"news_text\"), \" \")
Avatar billede quercus Nybegynder
22. maj 2001 - 23:43 #23
Invalid use of Null: \'int(...)\'
/webtemplates/test_newstop2.asp, line 35
Avatar billede netsrac Praktikant
22. maj 2001 - 23:45 #24
Utroligt, kan du ikke lige prøve at sende databasem til eksperten@cnh.dk så kigger jeg på det imorgen
Avatar billede quercus Nybegynder
22. maj 2001 - 23:53 #25
Jo, jeg prøver også at lede lidt omkring.
Jeg kan da ikke være den eneste i verden som sidder med en database hvori der er nogle nyheder på x antal linier, og man på en nyhedsside så vil vise f.eks. de første 50 ord og så kan man klikke på et detalje (læs mere) link.

Det er da set 100 gang før ?

Sender db, og takker mange gange for i aften :)
Avatar billede netsrac Praktikant
23. maj 2001 - 10:52 #26
Sådan noget pis, hader Access, det var fordi den ikke kunne håndtere at man forespurgte på rs(\"news_text\") flere gange, har løst det på følgende måde:

<%

Set conn = Server.CreateObject(\"ADODB.Connection\")
    Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"..\\db\\data.mdb\")
    set rs = conn.execute(\"select * from tblNews\")
    do until rs.eof
    nyhed = rs(\"news_text\")
    counter = 1
    start = 1
    do while counter <= 50
    pos = instr(start, nyhed, \" \")
    if pos = 0 then
    counter = 51
    else
    start = pos + 1
    counter = counter + 1
    end if
    loop
    tmp = left(nyhed, pos)
    response.write(tmp)
   
    response.write(\"<BR><BR>\")
   
   

    rs.movenext
    loop
    set rs = nothing
    conn.close
    set conn = nothing %>
Avatar billede quercus Nybegynder
23. maj 2001 - 15:34 #27
Yeeha !
Glæder mig til jeg har fri :)

Skal hjem og se det funge...
Avatar billede quercus Nybegynder
23. maj 2001 - 21:54 #28
Juhuuu! Det virker!!!
Dog er der jo det problem at den tæller på \" \" og det betyder at man skal sætte counter lidt lavt, og håbe på at der aldrig kommer en nyhed som er kortere end ens counter. For sker det, så vises nyhden slet ikke i oversigten :(

Nå, men det må jeg jo finde ud af.
Mange mange tak for hjælpen, håber også at dette vil glæde mange andre.
Avatar billede netsrac Praktikant
23. maj 2001 - 22:04 #29
Du kan evt. bruge den her, så skulle den også været fikset :-)

<%

Set conn = Server.CreateObject(\"ADODB.Connection\")
    Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.mappath(\"..\\db\\data.mdb\")
    set rs = conn.execute(\"select * from tblNews\")
    do until rs.eof
    nyhed = rs(\"news_text\")
    counter = 1
    start = 1
    do while counter <= 50
    pos = instr(start, nyhed, \" \")
    if pos = 0 then
    counter = 51
    pos = start - 1
    else
    start = pos + 1
    counter = counter + 1
    end if
    loop
    tmp = left(nyhed, pos)
    response.write(tmp)
   
    response.write(\"<BR><BR>\")
   
   

    rs.movenext
    loop
    set rs = nothing
    conn.close
    set conn = nothing %>
Avatar billede quercus Nybegynder
23. maj 2001 - 22:13 #30
Folkens !
Gør plads for en mesterkoder.

;-)
Avatar billede quercus Nybegynder
23. maj 2001 - 22:18 #31
Hvis jeg havde 8.000 point....
Så ville du ligge nummer 4
Avatar billede netsrac Praktikant
23. maj 2001 - 22:24 #32
:-)
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