Avatar billede sune.jakobsen Nybegynder
12. december 2002 - 18:02 Der er 13 kommentarer og
1 løsning

Hente det første af et database felt

Hvordan løses nemmest følgende:

I et felt i en database har jeg en nyhed på f.eks. 500 ord, nu vil jeg gerne i en oversigt have vist de f.eks første 18 ord, som en slags resume af artiklen. Hvordan nøjes jeg med at hente de første 18 ord ud, evt. med javascript men helst med SQL eller ASP.
Alternativt kan man vel hente alle ordene ud, og så pille de 482 sidste fra, men det er vel ikke det optimale!!!
Avatar billede dgivoni Nybegynder
12. december 2002 - 18:04 #1
SELECT LEFT(nyhed, 18) FROM tabel
Avatar billede dgivoni Nybegynder
12. december 2002 - 18:04 #2
hvis du altsaa mener tegn og ikke ord
Avatar billede dgivoni Nybegynder
12. december 2002 - 18:05 #3
du kan ikke udvaelge ord direkte i din SQL-saetning, saa skal du igang enten i ASP eller javascript
Avatar billede n!nja Nybegynder
12. december 2002 - 18:06 #4
Her udskrives de 15 første bogstaver af rs("test"), ved ikke om man kan gøre det med ord...
-------------------
Response.write left(rs("test"),15)

Mvh - N!NJA
Avatar billede dgivoni Nybegynder
12. december 2002 - 18:07 #5
I ASP kan du goere det at du loeber nyheden igennem og taeller antallet af mellemrum og naar du naar til det attene husker du det indeks og skaerer nyheden af der.
Avatar billede sune.jakobsen Nybegynder
12. december 2002 - 18:09 #6
Tegn kan jeg ikke bruge til noget, men idéen fra dgivoni vil jeg lige lege lidt med....
Avatar billede burningice Nybegynder
12. december 2002 - 18:10 #7
man kan også smide nyheden ind i et array der splitter på mellemrum, og så opbygge en nyhedsstreng af de første 18 felter

arrNyhed = Split(rs("nyhed")," ")

For i = 0 to 18
  strNyhed = strNyhed + arrNyhed(i) & " "
Next

Response.Write strNyhed &"..."
Avatar billede sune.jakobsen Nybegynder
12. december 2002 - 18:23 #8
Cyberprofessor ---> Det var det der skulle til!!! Kom med et svar!!!
Avatar billede dgivoni Nybegynder
12. december 2002 - 18:24 #9
og her er min loesning...
<%
nyhed = rs("nyhed")
i = 1
ord = 0
naesteMellemrum = 0
while (i <= len(nyhed) AND ord < 18)
    naesteMellemrum = InStr(i, nyhed, " ")
    if (naesteMellemrum > 0) then
          ord = ord + 1
        i = naesteMellemrum
    end if
  i = i + 1
wend
Response.write(i)
%>
Avatar billede dgivoni Nybegynder
12. december 2002 - 18:26 #10
cyberfessors er dog alt andet lige lidt mere elegant ;-) (ja og saa mangler jeg ogsaa lige at hive nyheden ud ved det indeks i, som jeg finder)
Avatar billede dgivoni Nybegynder
12. december 2002 - 18:26 #11
Response.write(Left(nyhed, i)) skulle goere det...
Avatar billede dgivoni Nybegynder
12. december 2002 - 18:27 #12
Response.write(Left(nyhed, i-2))
Avatar billede burningice Nybegynder
12. december 2002 - 18:31 #13
svar :)
Avatar billede burningice Nybegynder
12. december 2002 - 18:31 #14
arg
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