webForumDet fria alternativet

Separera texten

ASPur ASP

13 svar · 300 visningar · startad av reka1

Medlem sedan sep. 2001650 inlägg
Frågan#1

Jag vill hämta data från 5 kolumner (bransch1-5) för att sedan separera varje kolumnnamn med ett / vid utskrift.

T.ex. Data1 / Data2 / Data3

Hoppas att min luddiga förklaring går hem.

Medlem sedan juni 200032 967 inlägg
#2

Det vore bra om du illustrerade ditt problem med lite kod, för jag förstår inte alls problemet. För det kan väl inte vara så enkelt att problemet är utskriften:

Response.write objRS("bransch1") & " / " & objRS("bransch2") & " / " ' osv

Eller?

Medlem sedan sep. 2001650 inlägg
#3

Ja, jag var också inne på exemplet som du gett. Men då blir det en "/" bakom sista ordet och det är mindre populärt.

Kod var det ja. Jag var inne på detta men ser nu att det var totalt fel:

Response.write "<tr><td>"&Text(rs("foretag"))&"</td><td>"&rs("kontaktpersonA")&"</td><td>"&rs("adress")&"</td><td>"&rs("postnr")&"</td><td>" &rs("postort")&"</td><td>"&rs("land")&"</td><td>"
			dim branscher
			branscher = Array(rs("bransch1"), rs("bransch2"), rs("bransch3"), rs("bransch4"), rs("bransch5"))
			For i = 0 to ubound(branscher)
			response.write branscher(i) & " / " 
next
response.write "</td><td><a href='merInfo.asp?id="&rs("foretag")&"'>More info</a></td></tr>"
Medlem sedan juni 200032 967 inlägg
#4
			For i = 0 to ubound(branscher)
				response.write branscher(i)
				if not i = ubound(branscher) then response.write " / " 
			next

Eller missförstår jag?
Varför krånglar du till det med en array, när det ändå är ett bestämt antal (fåtal dessutom) fält från recordsetet?

Medlem sedan sep. 2001650 inlägg
#5

Mmh, samma resultat blir det som i min "lösning". D.v.s. 4 st "/" i följd efter ordet om de 4 övriga kolumnerna är tomma.

varför Array? Ptja, jag ramlade bara in på det, men jag är öppen för alla förslag :-)

Medlem sedan juni 200032 967 inlägg
#6

Då kanske du kunde titta på mitt första förslag?

Medlem sedan sep. 2001650 inlägg
#7

Jo, mensom sagt var jag inne på den linjen från första början. Nackdelen är att resultated blir:

Elektronik, optik / / / / /

Ifall de 4 övriga kolumnerna är tomma. Ochom alla kolumner har data så avslutas raden med ett "/".

Medlem sedan juni 200032 967 inlägg
#8

Ok, jag får väl vara den förste som säger att du har en rutten datamodell. :)

Man kan ju alltid använda if-satser för att se till att man bara skriver ut saker om det inte är tomt. Om vi fortsätter med arrayen då:

			For i = 0 to ubound(branscher)
				if not "" & branscher(i) = "" then strBranscher = strBranscher & branscher(i) & " / "
			next
			strBranscher = left(strBranscher, len(strBranscher)-3
			response.write strBranscher
Medlem sedan sep. 2001650 inlägg
#9

Tack! Nu funkar det :-) Rutten datamodell? ;-)

Medlem sedan juni 200032 967 inlägg
#10

Ja, datamodellen är rutten. Du borde ha egen tabell där du knyter samman ett företag med olika branscher.

Medlem sedan sep. 2001650 inlägg
#11

Hm, om du har lite tid över så får du gärna förklara lite närmare ;-)

Medlem sedan juni 200032 967 inlägg
#12

Om man har en tabell som innehåller kunder:

ID	Namn
-----------------------
1	Företag 1
2	Företag 2

, och har en tabell som innehåller branscher:

ID	Branschnamn
------------------------
1	IT
2	Något annat

, så har man en tabell som knyter samman dessa:

Företags-ID	Bransch-ID
--------------------------------
1		1
1		2

Sedan joinar man ihop dessa tre tabeller i en SQL-fråga för att få ut lämpligt recordset.

mvh

Medlem sedan jan. 20011 154 inlägg
#13

Ett tips till det där är att inte använda autogenererade IDn som man inte har någon kontroll över. Ställer till massor med problem om man någon gång ska flytta på datan eller lägga den i nya tabeller

Medlem sedan sep. 2001650 inlägg
#14

Aha, ok. Tack för upplysningen. Ja, det där ser faktiskt smidigare ut :-)

136 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)