webForumDet fria alternativet

Plocka ut rätt ur databasen

ASP

5 svar · 293 visningar · startad av zlakker

Medlem sedan apr. 2001227 inlägg
Frågan#1

@nders hjälpte mig att ta fram denna koden som fungerar bra.

<%
		strSQL = "SELECT * FROM tblText WHERE page = 'miljo' ORDER BY rowname"
		set objRS = Conn.Execute(strSQL)
		while not objRS.EOF
			 strTmp = objRS("rowname")
			 select case strTmp
				 case "startinfo" 
					  strStartinfo = objRS("content")
				 case "foo" 
					  strFoo = objRS("content")
				 case "bar" 
					  strBar = objRS("content")
				' etc
			 end select   
			 objRS.MoveNext
		wend
	%>

Anledningen till denna kod är att jag har ett antal sidor och på varje sida finns olika textblock. Varje textblock ska gå att uppdatera via admin-gränssnitt.
Koden går igenom databasen och ger varje text ett namn som sedan skrivs ut. Problemet är att jag spara alla texter för alla sidor i samma databastabell. För att sortera vilka texter som ska vara på vilken sida gav jag varje text ett område(sida), tex page = miljo. Men då kommer det ingen text alls.

Vad kan jag ha gjort för del? Är det jobbigt för servern om man har tex 30 olika tabeller..alltså en för varje sida.

Medlem sedan feb. 200112 078 inlägg
#2

zlakker skrev:

Vad kan jag ha gjort för del? Är det jobbigt för servern om man har tex 30 olika tabeller..alltså en för varje sida.

Du skall inte ha flera tabeller för samma typ av data, det är en dödsynd. ;) Det är ungefär som att ha en fruktkorg för varje äpple eller banan du köper.

Medlem sedan juni 200032 967 inlägg
#3

Problemet är att jag spara alla texter för alla sidor i samma databastabell.

Som Överridaren säger, det är inte ett problem, utan en förutsättning.

När är det alltså koden inte fungerar? Vilken skillnad är det mot den kod som fungerar?

Medlem sedan apr. 2001227 inlägg
#4

Denna kod fungerar

<%
		strSQL = "SELECT * FROM tblText  ORDER BY rowname"
		set objRS = Conn.Execute(strSQL)
		while not objRS.EOF
			 strTmp = objRS("rowname")
			 select case strTmp
				 case "startinfo" 
					  strStartinfo = objRS("content")
				 case "foo" 
					  strFoo = objRS("content")
				 case "bar" 
					  strBar = objRS("content")
				' etc
			 end select   
			 objRS.MoveNext
		wend
	%>

Jag kanske har 100 sidor och på varje sida är det 10 textblock..så blir det kanske dumt att på varje sida lista upp alla de olika "casen". Då tänkte jag ju det att om man ger dem ett sidnamn (text miljo om sidan heter miljo.asp) så kan man göra listan mindre.

Medlem sedan juni 200032 967 inlägg
#5

Det fungerar alltså inte om du lägger till WHERE-satsen du har i ditt första inlägg i tråden?

(Jag hoppas förresten att du inte menar att du har 100 asp-sidor som ser likadana ut, som bara hämtar olika info från databasen?)

Medlem sedan apr. 2001227 inlägg
#6

Hej
Nej sidorna ser inte likadana ut :)
Och nu tog jag i lite kanske..säg 13 sidor med 4 textblock på varje

Precis det fungerar inte när jag plockar in where-satsen

255 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)