String mit LoadVars aus PHP über POST

danielerne

Mitglied
Hallo zusammen

Ich arbeite gerade an einem Flash-Projekt, das Daten aus einer MySQL-Datenbank über PHP ausliest und diese anzeigt.
Die Datenbank umfasst 216 Datensätze, aber Flash liest nur 62 heraus. Ich weiss nicht mehr weiter...

Das PHP sendet ein einziger String mit allen Datensätzen. Die Datensätze sind mit !! getrennt und die Felder mit _

Diese werden wiederum in Flash in ein Array gesteckt.

Ausschnitt in Flash:
Code:
lva.init = "init";

//Ladefunktion
lva.sendAndLoad("read.php",lva,"POST");

//Anweisung, wenn Datei erfolgreich geladen
lva.onLoad = function(success:Boolean) {
	if (success) {
		
		DatenRoh = this['Init'];
		Anz_Ds = this['DS'];
		
		
		Daten = DatenRoh.split("!!");
		
		for (i=0; i<Daten.length; i++) {

			Daten[i] = Daten[i].split("_");
		}
}

Ausschnitt PHP:

PHP:
if ($HTTP_POST_VARS['init']){
   $anfrage="SELECT * FROM mitglieder";
   $such=mysql_query($anfrage);
   $ergebnis=mysql_fetch_assoc($such);
   echo "&Init=";
   while ($ergebnis){
         $inhalte=Array( 0=>'Nr', 1=>'Name', 2=>'Vorname', 3=>'Adresse', 4=>'PLZ', 5=>'Ort', 6=>'Email', 7=>'Aktiv', 8=>'Land');
		 
         foreach ($inhalte as $value){
                 echo $ergebnis[$value]."_";
         }
         echo "!!";
         $x++;
         mysql_data_seek($such,$x);
         $ergebnis=mysql_fetch_assoc($such);
   }

Wäre sehr dankbar für eine Hilfe!

Gruss
 
Hi,

lass Dir mal in der onLoad-Methode das komplette LoadVars-Objekt mit trace() ausgeben - wenn hier die komplette Ausgabe des PHP-Scripts angezeigt wird, liegt das Problem an der Aufteilung mit split (mag sein, dass die Methode ein Limit bei der Anzahl der zurückgegebenen Elemente hat) - ansonsten (was ich für eher unwahrscheinlich halte), ist die Übertragung nicht komplett.

Ich würde Datensätze lieber als XML-Baum ausgeben lassen und mit dem XML-Objekt einlesen.

Gruß
.
 
Hallo

Danke für die schnelle Antwort. Wenn ich trace(lva) eingebe erscheinen ebenfalls nur 62 Datensätze. Ach, mist. Mit XML kenne ich mich nicht aus, aber ich versuche einmal das PHP Skript zu kürzen, das nur die Nummer und der Name gesendet wird.
 
Hi,

Wie lang (in Zeichen) ist denn die komplette Ausgabe des PHP-Scripts? Die Länge von Strings ist unter AS wohl begrenzt (die genaue Maximallänge kann ich aber auf die Schnelle nicht finden).

Die Verarbeitung mit dem XML-Objekt ist nicht weiter kompliziert. Lass dein PHP-Script in etwa so etwas ausgeben:
Code:
<row id="1" name="Max" number="145" plz="12345" />
<row id="2" name="Gabi" number="47" plz="0815" />
...
und lies die Daten z.B. so ein:
Code:
var personen = new Array();

var xm = new XML();

xm.ignoreWhite = true;

xm.onLoad = function() {
  parse(this.childNodes);
}

xm.load("script.php");

function parse(obj) {
  for (var i=0; i<obj.length; i++) {
    personen[i] = new Object();
    personen[i].id = parseInt(obj[i].attributes.id, 10);
    personen[i].pname = obj[i].attributes.name;
    personen[i].pnumber = obj[i].attributes.number;
    personen[i].plz = obj[i].attributes.plz;
  }
}

Gruß
.
 
Hallo

Der gesammte String ist ca. 200 Zeichen lang. Habe jetzt einmal nur die Namen und die jeweilige Nummer zurückgegeben, aber komischerweise stoppt er immer noch bei Datensatz 62.

..hmmm

Es lief alles nach Plan und jetzt das! Die Seite muss ca. nächste Woche stehen. :eek:

Betreffend XML: Sieht kompliziert aus :suspekt:
Aber wenn es die beste Lösung ist..

Gruss

Daniel
 
Zurück