webForumDet fria alternativet

MySQL => PHP => Flash

8 svar · 362 visningar · startad av Flow

FlowMedlem sedan dec. 200283 inlägg
#1

Hallåj!

Har försökt att få detta att fungera väldigt länge nu men lyckas inte, jag har en mysql-databas som ser ut såhär:

id x y namn
1 10 10 Test
2 20 20 Test2
3 15 20 Test3

Den information hämtar jag via php så jag får ut detta:

plats[0][0]=1&plats[0][1]=10&plats[0][2]=10&plats[0][3]=Test&
plats[1][0]=2&plats[1][1]=20&plats[1][2]=20&plats[1][3]=Test2&
plats[2][0]=3&plats[2][1]=15&plats[2][2]=20&plats[2][3]=Test3&

Jag har fått plats[0][3] att visas i ett textfält men när jag kör en enkel trace(plats[0][3]) så får jag ut värdet undefined vad beror detta på? Har sökt som en dåre men inte hittat ett enda exempel någonstans om hur man läser in och visar "dubbelarrayer".

mvh
Flow

RödalacketMedlem sedan feb. 20002 612 inlägg
#2

Tror inte att du kan skicka det till flashen på detta sätt utan du måste nog
nummrera variablerna typ, plats0, plats1, plats2.. o.s.v.

Gjorde en textfil, array.txt, med följande innehåll

plats0=niclas&plats1=rrr&plats2=tttt&plats3=Test&plats4=2&plats5=gggg&plats6=20000&plats7=Test2&plats8=3&plats9=15&plats10=20&plats11=Test3&

och peta in detta i frame 1 i din flash-fil

load2DArray = new LoadVars();
load2DArray.load("array.txt");
load2DArray.onLoad = function(success) {
	if (success) {
		x=0;
		var myArray = new Array();
		j = 0;
		antal = 3;
		for (i=0; i<=antal; i++) {
			myArray[i] = new Array();
			for (k=j+3; j<k; j++) {
				myArray[i].push(this["plats"+x]);
				x = x+1;
			}
		}
		trace(myArray[0]);
		trace(myArray[1]);
		trace(myArray[2]);
		trace(myArray[3]);
	}
};

och testkör.

FlowMedlem sedan dec. 200283 inlägg
#3

Okej,.. hmm, har förstått nu att det inte går med en array men jag har gjort så att jag får ut det såhär, går det inte att lösa med en 2d array i flash?

&plats0_0=1&plats0_1=10&plats0_2=10&plats0_3=Test&plats1_0=2&plats1_1=10&plats1_2=15&plats1_3=Test2&plats2_0=3&plats2_1=20&plats2_2=20&plats2_3=Test3&

??

//flow

RödalacketMedlem sedan feb. 20002 612 inlägg
#4

Du kan inte skicka en array till flash utan måste skapa den i flashen.
Om du väljer att döpa variablerna till namn0_0, namn0_1, namn0_2, namn1_0, namn1_1, namn1_2... o.s.v. så går väl det men det blir nog väldigt krångligt att få till i flashen sedan.

FlowMedlem sedan dec. 200283 inlägg
#5

Saken är att jag vill ha alla variablerna samlade i en 2d array så att jag har id, x, y, namn i samma "fack". Om jag döper om dem till plats0, plats1 osv så blir det ju problem eftersom varje post har 4 st värden. När jag sedan lägger ihop allting med din funktion så blir det ju jobbigt att arbeta med, eller har jag missuppfattat hur den fungerar??

//Flow

RödalacketMedlem sedan feb. 20002 612 inlägg
#6

Om du hämtar id, x, y och namn och döper första id till plats0 första x till plats1, y till plats2 och namn till plats3 sen andra id till plats4 andra x till plats5 o.s.v. så borde det väl funka?

FlowMedlem sedan dec. 200283 inlägg
#7

Det är klart att det går men om jag lägger till en "column" till så måste jag in och ändra i koden därför blir det jobbigt plus att det kommer röra sig om ett antal hundra olika "rows" så det blir en del att hålla reda på därför ville jag ha 2D arrays :)

RödalacketMedlem sedan feb. 20002 612 inlägg
#8

Textfil 2dArray.txt:

&plats0_0=1&plats0_1=10&plats0_2=10&plats0_3=Test&plats1_0=2&plats1_1=10&plats1_2=15&plats1_3=Test2&plats2_0=3&plats2_1=20&plats2_2=20&plats2_3=Test3&

Flash:

load2DArray = new LoadVars();
load2DArray.load("2dArray.txt");
load2DArray.onLoad = function(success) {
	if (success) {
		var myArray = new Array();
		j = 0;
		antal = 2;
		for (i=0; i<=antal; i++) {
			x = 0;
			myArray[i] = new Array();
			for (k=j+4; j<k; j++) {
				myArray[i].push(this["plats"+i + "_" +x]);
				x = x+1;
			}
		}
		trace("myArray[0][0] = " add myArray[0][0]);
		trace("myArray[0][1] = " add myArray[0][1]);
		trace("myArray[0][2] = " add myArray[0][2]);
		trace("myArray[0][3] = " add myArray[0][3]);
		trace("myArray[0] = " add myArray[0]);
		trace("myArray[1] = " add myArray[1]);
		trace("myArray[2] = " add myArray[2]);
	}
};
FlowMedlem sedan dec. 200283 inlägg
#9

Fungerar ! Stort tack!

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