/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
replace i en While løkke
Fra : Kasper Katzmann


Dato : 28-03-03 16:47

Jeg prøver at skifte alle navne i en tekst ud med et link hvis det
pågældende navn findes i en navnedatabase (caracters). Hvorfor virker det
ikke?

<CODE>

strSQL = "SELECT name FROM caracters ORDER BY caracter_id"
Set rs = Conn.Execute(strSQL)

rs.MoveFirst
While not rs.eof
name = rs("name")
chapter = Replace(chapter, name, "<a href=""default.asp?PageID=3"">" &
name & "</a>")
rs.MoveNext
Wend

Response.Write chapter

</CODE>

Der er kun to navne i databasen (MSSQL).
Den henter navnene fint frem, men den erstatter ikke noget som helst.
Skifter jeg name ud i søgekreteriet med det første navn i db'en, vil den
gerne erstatte det navn, men den gør det med det andet navn i db'en.




--
Kasper Katzmann
Katzmann Consulting
http://www.katzmann.dk



 
 
Ukendt (28-03-2003)
Kommentar
Fra : Ukendt


Dato : 28-03-03 17:52


"Kasper Katzmann" <kasperFJERN@DETTEkatzmann.dk> wrote in message
news:b61qo9$5e6$1@sunsite.dk...
> Jeg prøver at skifte alle navne i en tekst ud med et link hvis det
> pågældende navn findes i en navnedatabase (caracters). Hvorfor virker det
> ikke?
>
> <CODE>
>
> strSQL = "SELECT name FROM caracters ORDER BY caracter_id"
> Set rs = Conn.Execute(strSQL)
>
> rs.MoveFirst
> While not rs.eof
> name = rs("name")
> chapter = Replace(chapter, name, "<a href=""default.asp?PageID=3"">" &
> name & "</a>")
> rs.MoveNext
> Wend
>
> Response.Write chapter
>
> </CODE>

Hvilken fejl får du ??

Prøv at læse her : http://www.asp-faq.dk/article/?id=41

Men desuden tror jeg at du mangler "DO" og et "Loop" ???

******
DO While not rs.eof

snip

rs.MoveNext

LOOP
********

Tror dette er en del af det, men svært at vide da du ikke skriver hvilken
fejl du har.??
--

Mvh / Regards
-=< Christian >=-
What capital has 164 letters in its name? See my web page to find out.
http://www.cmnielsen.dk ICQ: 25308942
" If something's hard to do, then it's not worth doing. Homer J. Simpson"



Anders Lund (28-03-2003)
Kommentar
Fra : Anders Lund


Dato : 28-03-03 20:28

"Christian M. Nielsen" <christian(AT)cmnielsen(DOT)dk> skrev i en meddelelse
news:3e847d9d$0$4370$ba624c82@nntp03.dk.telia.net...

> Men desuden tror jeg at du mangler "DO" og et "Loop" ???
>
> ******
> DO While not rs.eof
>
> snip
>
> rs.MoveNext
>
> LOOP
> ********

nej en while - wend er skam helt lovlig.
Sakset fra asp doc'en:


Executes a series of statements as long as a given condition is True.
While condition
Version [statements]
Wend

Til Kasper, så tror jeg du selv må prøve at ekspermentere lidt mere. Prøv
evt at lave en resoonse.write name & vbcrlf inde i løkken, så kan du se om
alle navne også blive hentet fra databasen. Der er så vidt jeg kan se intet
galt med din kode.
En typisk fejl (i hvert fal for mig) er at den database din asp sider gå op
imod og den database du selv kikker i, ikke er den samme.


--
Mvh
Anders Lund
AndersGED@zaim.dk
fjern geden fra min email adresse



Jonas Schmeltz Aaber~ (29-03-2003)
Kommentar
Fra : Jonas Schmeltz Aaber~


Dato : 29-03-03 17:10

> chapter = Replace(chapter, name, "<a href=""default.asp?PageID=3"">" &
> name & "</a>")


Har du husket at skrive noget tekst i chapter, som man kan replace ?!



--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Kasper Katzmann (30-03-2003)
Kommentar
Fra : Kasper Katzmann


Dato : 30-03-03 14:47

> Har du husket at skrive noget tekst i chapter, som man kan replace ?!

Jep... og jeg har fundet fejlen. Jeg var nød til at trimme outputtet -
Trim(rs("chapter")) - da der var en ordentlig bunke mellemrum i slutningen
af hvert resultat.

Jeg hiver rs("chapter") ud fra en MSSQL database hvor det er placeret i et
felt af typen char med plads til 200 tegn. Det resulterer åbenbart i at alle
200 tegn kommer med ud uanset om der kun er reel tekst i de 20 eller ej.

Hvordan undgår jeg det?

--
Kasper Katzmann
Katzmann Consulting
http://www.katzmann.dk



Jens Gyldenkærne Cla~ (31-03-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 31-03-03 10:04

Kasper Katzmann skrev:

> Jeg hiver rs("chapter") ud fra en MSSQL database hvor det er
> placeret i et felt af typen char med plads til 200 tegn. Det
> resulterer åbenbart i at alle 200 tegn kommer med ud uanset om
> der kun er reel tekst i de 20 eller ej.
>
> Hvordan undgår jeg det?

Brug varchar eller nvarchar i stedet. Hvis du har poster hvor kun
en tiendedel af et charfelt er i brug er det ikke en fornuftig
datatype.

Hvis du vil holde fast i det kan du i SELECT-sætningen trimme
feltet: LTRIM(chapter) i stedet for chapter. Det kan dog muligvis
give bøvl hvis chapter også kan være null.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177551
Tips : 31968
Nyheder : 719565
Indlæg : 6408834
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste