Datenbankabfrage,XML, Flash - zu langsam?

  • Themenstarter Themenstarter Borderlinegirl
  • Beginndatum Beginndatum
B

Borderlinegirl

Hallo,
hab ein kleines Problem, dass doch zu lösen sein muss. Nur steh ich grad auf der Leitung und bitte mal um einen Denkanstoß. ;-)

Hab nen Terminplaner, der, wenn man auf einen Tag klickt, zu diesem Tag die Termine ausgeben soll. Diese kommen aus einer DB. Also schick ich beim Klicken per loadVariablesNum den Tag an eine PHP-Datei, die dann die SELECT Abfrage macht für den bestimmten Tag. Dann erstellt die PHP-Datei XML-Code, der dann in Flash geladen wird.
Folgendes Problem. Wenn ich eine Abfrage ohne WHERE datum=datumAusFlash mach und alle vorhandenen Termine der DB anzeigen lass, geht die Sache wunderbar (Gästebuch läuft ja ähnlich). Sobald ich das Datum einschränken will, zeigt er mir in Flash nix mehr an. Ein Blick in die PHP-Datei zeigt aber, dass der XML-Code richtig erstellt wurde (also muss PHP zumindest das Datum von Flash richtig empfangen haben). Flash erkennt aber keinen Knoten in der XML-Struktur.
Frage: Dauert da irgendwas zu lange (was bei der geringen Menge der Daten mir eigentlich nicht vorstellen kann) oder wo könnte das Problem liegen

Danke für eure Vorschläge.
BG
 
Anzeige problem

Hallo!

Es könnte sein, dass Deine XML-Werte erst ausgegeben werden, wenn das Flash movie bereits geladen ist.... spekulation....
Dazu wäre aber ein bisschen Script nicht schlecht...
Der externe Script, der Die XML Werte ausgibt, steuert der das Flash Movie?

Für den Fall, dass das Auslesen aus der DB zu lange geht, könntest Du mittels einer Kontroll Variablen(die erst ausgegeben wird wenn die Daten verfügbar sind), Das Movie steuern...
Aber eben... ohne Script geht da leider nicht viel..

Mfg Sebastian
 
hmmm...

Ich beschreib das Problem nochmal genauer.
1) Es gibt eine swf-Datei, in der zu einem bestimmten Frame "Tag" gesprungen wird, wenn ein Tag ausgewählt wird. Erst bei diesem Sprung wird ja klar, welches Datum ausgewählt wurde, also kann ich ja auch erst dann, die entsprechende Variable (wird aus einem Textfeld ausgelesen) an die php-Datei schicken.

PHP:
p_datum = datum_txt.text;
loadVariablesNum ("anzeigen.php",0,"POST");

2) Die Datei anzeigen.php wertet das Datum aus, sucht in der DB die entsprechende Einträge und gibt sie als XML zurück. Das funktioniert auch einwandfrei.

3) Im Frame "Tag" wird dann die PHP-Datei ausgelesen und die Termine sollten angezeigt werden. Tun sie aber nicht, weil Flash meint, es gibt keine Knoten in der XML Struktur, obwohl doch schon das XML Dings fertig sein müsste.

PHP:
function ladeDaten() {
	my_xml = new XML();
	my_xml.ignoreWhite = true;
	my_xml.load("anzeigen.php");
	status_txt.text = "Lade Einträge...";
	my_xml.onLoad = function(status) {
		if (status) {
			status_txt.text = "Daten geladen";
			termin_xml = my_xml.firstChild.childNodes;
			delete my_xml;
			initVars();
			setTermine();		
		}
	};
}

ladeDaten();

"Daten geladen" wird auch fein ausgegen, also der Ladevorgang war erfolgreich. Aber da ist ja auch angeblich nix... :(

4) Hab herausgefunden, wenn ich im ersten Frame meiner swf das Datum als festen String an die PHP-Datei schick, dann funktioniert die Sache. Nur leider weiß ich zu dem Zeitpunkt das Datum noch nicht. :(

Tja, ich hoffe, es war ausführlich genug.
Grüße
BG
 
Auf 'Tag' Frame springen...

Hä.. wie...

Wenn du auf einen Tag klickst, springt Flash auf den endsprechenden Frame, der den Tag dann eventuell farbig hinterlegt... oder wie?

Wo sollen dir dann Deine ausgegebenen Werte angezeigt werden?
Externes movie?

Wenn das innerhalb des gleichen Movies passieren soll, gibts Probleme.
Weil Flash bereits nach dem Klick auf den entsprechende Frame gesprungen ist und die Daten aber noch nicht ausgegeben wurden.

Wenn ich das falsch verstanden habe, bräuchte ich noch Infos wie der Movie aussieht.

Ein movie, mehrere, externe?

Greatz
 
Wenn ein Movie

Also wenn das ganze aus einem Movie besteht, mach folgendes...

PHP Script der die Werte ausgibt:

am ende der Datenauflistung->>>> $varsloaded = true;

dein Movie, soweit ich verstanden habe, besteht aus zwei frames:

frame 1= 'kalender' , frame 2 = 'tag'

auf frame 1müsste dann wohl irgendwo auf den buttons stehen:
gotoAndPlay("tag");

änder das in gotoAndPlay("test");

füge einen weiteren frame in das movie ein 'test'
in dem steht:

PHP:
if (&varsloaded == true){
gotoAndPlay("tag");
}else{
gotoAndPlay("schleife");
}

dann ein weiterer frame namens 'schleife':

PHP:
gotoAndPlay("test");

Greatz
 
Ich werds mal so versuchen oder halt dann den Frame, in dem die Termine angezeigt werden sollen als extra Movie machen. Mal schauen.

Danke erst mal für die Hilfe.
BG
 
Zurück