/ Forside/ Teknologi / Udvikling / ASP / Spørgsmål
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
Tæl bestemte ord i database
Fra : Gizmo-man
Vist : 722 gange
50 point
Dato : 18-06-06 14:20

Jeg har en tabel (access) der indeholder nyheder, og hver nyhed kan have et eller flere billede tilknyttet. Billederne er lagt ind som tekst og bliver ved udskrift skiftet ud med det rigtige billede, en tekst kan feks se sådan her ud:

[pic id=123]Her er nyhedsteksten, og der kan så være flere billeder[pic id=321]

Jeg kunne så godt tænke mig at tjekke hele databasen for at se hvor mange gange billede [pic id=123] bliver brugt, og hvis det er brugt 2 gange i samme nyhed så skal det og tælle som 2, jeg har prøvet med følgende kode, men den kommer med det samme tal til alle billeder.

strSQL = "select count('[pic id=" & rsCategories("apID") & "]') as Used from articles"

 
 
Kommentar
Fra : smorch


Dato : 18-06-06 14:53

Den forespørgsel tæller hvor mange poster, der indeholder [pic id=" & rsCategories("apID") & "], men giver dig ikke et svar på hvor mange gange
[pic id=" & rsCategories("apID") & "] bliver brugt ialt.


Jeg vil foreslå, at du henter samtlige poster hvor [pic id=" & rsCatagories("apID") & "] findes, og derefter looper igennem dem og så tæller op i hvert enkelt post hvor mange gange billedestrengen findes, lægger antallet til en tæller, som du så kan få summen af efter loop´en er afsluttet.

Mvh
sMorch

Kommentar
Fra : Gizmo-man


Dato : 18-06-06 15:40

Okay det kan man jo gøre, har lige smidt noget hurtigt sammen, men den virker ikke helt som forventet, hvad gør jeg forkert. Den skriver 0 ved alle billeder og ved at næsten alle billeder er brugt mindst en gang.

<%
strSQL = "select * from articles where aArticletext='%[pic id=" & rsCategories("apID") & "]%'"
Set rs = ConnMain.Execute(strSQL)

used = 0

If not rs.EOF or not rs.BOF Then

Do

used = used+1

rs.MoveNext
Loop While Not rs.EOF

End If
%>

Kommentar
Fra : smorch


Dato : 18-06-06 16:54

Jeg går ud fra, at du henter alle billedemulighederene i en anden tabel og at nedenstående
foregår i en loop med rsCategories


<%



strSQL = "select * from articles where aArticletext='%[pic id=" & rsCategories("apID") & "]%'"
Set rs = ConnMain.Execute(strSQL)
used = 0
If not rs.EOF or not rs.BOF Then
Do until rs.eof
used = used+1
response.write(GetWordsOccurrences(rs("aArticletext"),rsCategories("apID")))
rs.MoveNext
Loop While Not rs.EOF
End If



Function GetWordsOccurrences(Text, apID)
   OrdArr= split(text,"[pic id=" & apID &"]")
   GetWordsOccurrences=UBound(OrdArr)
End Function

%>


Kommentar
Fra : Gizmo-man


Dato : 18-06-06 18:21

Jeg får fejl i denne linie:

Loop While Not rs.EOF

Kommentar
Fra : smorch


Dato : 18-06-06 20:47

fjern While Not rs.EOF

Kommentar
Fra : Gizmo-man


Dato : 18-06-06 21:27

Nu får jeg en ny fejl:

Syntax error

Function GetWordsOccurrences(Text, apID)


Hvordan skal jeg forresten udskrive resultatet ? <%=used%> eller hvad ?

Kommentar
Fra : smorch


Dato : 19-06-06 01:57

Kunne du vise mig hele koden - Jeg arbejder lidt i blinde hvis ikke jeg kan se den.


nej du skal ikke bruge usede til noget nu -

response.write(GetWordsOccurrences(rs("aArticletext"),rsCategories("apID")) & "<br>")

udskriver antallet af forekomster af [pic id=XXX]

Du skal lave sql strengen om til

strSQL = "select * from articles where aArticletext LIKE '%[pic id=" & rsCategories("apID") & "]%'"

Den havde jeg lige overset..... ups

mvh

sMorch


Kommentar
Fra : Gizmo-man


Dato : 19-06-06 09:30

Får stadig samme fejl:

Microsoft VBScript compilation error '800a03ea'
Syntax error
/pages/admin/pictures_show.asp, line 81
Function GetWordsOccurrences(text,apID)
^

Her er hele koden som den ser ud nu:

<%
strSQL = "select * from articles where aArticletext LIKE '%[pic id=" & rsCategories("apID") & "]%'"
Set rs = ConnMain.Execute(strSQL)
used = 0
If not rs.EOF or not rs.BOF Then
Do until rs.eof
used = used+1
response.write(GetWordsOccurrences(rs("aArticletext"),rsCategories("apID")))
rs.MoveNext
Loop
End If

Function GetWordsOccurrences(text,apID)
OrdArr= split(text,"[pic id=" & apID &"]")
GetWordsOccurrences=UBound(OrdArr)
End Function
%>

Kommentar
Fra : smorch


Dato : 19-06-06 10:26

Den ovenstående kode mangler et input til funktionen GetWordsOccurrences(text,apID)

De to ord i parantesen betyder, at der skal to værdier ind i funktionen for at den fungerer.

Dene første er teksten fra forespørgslen select * from articles where aArticletext LIKE '%[pic id=" & rsCategories("apID") & "]%

og den anden er er værdien af den forespørgsel rsCategories jeg regnede med de havde lavet ´´udenom´´ den viste kode......

prøv nedenstående, men husk at udskifte ????? med tabelnavn


<%
strSQL1 = "select apID from ????? " 'Jeg ved ikke hvad den tabel hvor du henter apID fra hedder, så udskift ????? med tabelnavnet
Set rsCategories = ConnMain.Execute(strSQ1)
if not rsCategories.eof then
   do until rsCategories.eof




   strSQL = "select * from articles where aArticletext LIKE '%[pic id=" & rsCategories("apID") & "]%'"
   Set rs = ConnMain.Execute(strSQL)

   If not rs.EOF or not rs.BOF Then
      Do until rs.eof
      used = used+1
      response.write(GetWordsOccurrences(rs("aArticletext"),rsCategories("apID")))
      rs.MoveNext
      Loop
   End If


rsCategories.movenext
loop

end if



Function GetWordsOccurrences(text,apID)
OrdArr= split(text,"[pic id=" & apID &"]")
GetWordsOccurrences=UBound(OrdArr)
End Function
%>

Kommentar
Fra : Gizmo-man


Dato : 19-06-06 10:41

Jeg får stadig fejlen:

Microsoft VBScript compilation error '800a03ea'
Syntax error
/pages/admin/pictures_show.asp, line 81
Function GetWordsOccurrences(text,apID)
^


Din SQL1 sætning har jeg jo allerede, det er den som laver rsCategories("apID") som er nummeret på det billede der skal søges efter...

Kommentar
Fra : smorch


Dato : 19-06-06 10:49

Det var derfor jeg bad om at se HELE koden.......

sMorch

Kommentar
Fra : Gizmo-man


Dato : 19-06-06 17:07

Jeg har sendt et svar på din besked, men er helt ny på denne side, så ved ikke om du har modtaget det !!!

Accepteret svar
Fra : smorch

Modtaget 50 point
Dato : 19-06-06 19:11

nix - skriv på den mail adr. jeg sendte dig

Kommentar
Fra : smorch


Dato : 20-06-06 22:29

Vebter stadig ......

Godkendelse af svar
Fra : Gizmo-man


Dato : 21-06-06 10:06

Tak for svaret smorch.

Kommentar
Fra : smorch


Dato : 21-06-06 10:20

Sæææl tak

Det skal lige bemærkes, at funktionen selvfølgelig ikke må være inde i en loop, og at Gizmo-man har fået sin egen kode i fungerende udgave.

sMorch

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste