Mysql tabelle in Flash darstellen

1manni1

Erfahrenes Mitglied
Nun ich habe jetzt seit 1 stunde in sämtlichen foren gesucht und überallsteht etwas anders darüber.
Wie schaffe ich es eine Mysql tabelle, die 2 splaten zB hat in Flash anzuzeigen. Allerdings sind die zeilen unbekannt also beliebig lang.

Ich hab nun gelesen das man die daten mithilfe von php
auslesen kann.
Das weiß ich auch wie das geht aber wie mache ich das nun am besten. Soll ich dort ein mehrdeminsionales Array machen, also für jede spalte etwas oder lieber mehrere kleine arrays. Und wenn ja wie mach ich das am besten.
Dann kann man die Daten irgendwie auch in flash einlesen und spliten so wie ich gesehen habe, damit man in flash wieder ein array hat. Nun wie erstelle ich aber nun damit eine tabelle.
Also kurz genommen. ich weiß hab 1 stunde gelesen und noch nichts kapiert^^
 
Hi,

für die Übertragung tabellenartiger Daten vom Server an Flash bietet sich das XML-Objekt an. Gib PHP-seitig einen XML-Baum nach diesem Muster aus:
Code:
<zeile spaltenname1="Zellenwert" spaltenname2="Zellenwert" />
<zeile spaltenname1="Zellenwert" spaltenname2="Zellenwert" />
<zeile spaltenname1="Zellenwert" spaltenname2="Zellenwert" />

...
Mit dem XML-Objekt und der Methode XML.load (bzw. XML.sendAndLoad wenn die Serverausgabe die Reaktion auf eine konkrete Anfrage sein soll) kannst Du diesen Baum nun parsen und ausgeben, wie Du willst.

Für mehr Informationen zum XML-Objekt empfehle ich Dir die Forensuche mit dem Stichwort "xml".

Gruß
.
 
ok die hab ich nun geschafft.
PHP:
<?php

//Daten
include 'daten.php';


/*Verbindung mit Datenbank*/
$connect = mysql_connect($db_server, $db_user, $db_passwort);
if (!$connect) {
    die('keine Verbindung möglich: ' . mysql_error());
}
//echo 'Verbindung erfolgreich';

$db_selected = mysql_select_db($db_name, $connect);
if (!$db_selected) {
    die ('Kann Datenbank nicht benutzen : ' . mysql_error());
}

$playerinfoxml = '<?xml version="1.0" encoding="UTF-8"?>'; 

$query1 = "SELECT name, email, icq, xfire, msn, homepage, wohnort, geburtstag FROM ".$playerinfo;
$result1 = @mysql_query($query1);
while ($row1 = mysql_fetch_array($result1)){
	$playerinfoxml. = 	'<zeile 
						name="'.$row1['name'].'" 
						email="'.$row1['email'].'"
						icq="'.$row1['icq'].'" 
						xfire="'.$row1['xfire'].'" 
						msn="'.$row1['msn'].'" 
						homepage="'.$row1['homepage'].'" 
						wohnort="'.$row1['wohnort'].'" 
						geburtstag="'.$row1['geburtstag'].'"  
						/>';
}
echo utf8_encode($playerinfoxml);
?>

aber wie muss ich das nun im actionscript verarbeiten, damit ich eine tabelle machen kann
 
Hi,

wie gesagt: Mit dem Stichwort "XML" findest Du hier einiges zum Thema.

Auch die Dokumentation desr XML- und XMLNode-Objekte ist recht ausführlich.

Lies Dir Dir Infos an und melde Dich wieder, wenn Du etwas nicht verstehst - es bringt ja nicht viel, wenn wir hier fertige Scripte liefern. ;)

Gruß
.
 
ok eine frage

XMLdaten.load("XMLfile.xml");

so ladet man ja die xml datei aber bei mir entseht ja keine xml datei da sie nirgens geschrieben wird. Wie kann ich dann dort mein $playerinfoxml reinladen?
 
Hi,

Code:
xmlObject.load("deinscript.php");
Ob es sich bei der Quelle um ein serverseitiges Script oder eine statische Datei handelt, ist egal.

Gruß
.
 
ok nun habe ich das ganze wieder in einem Array

Code:
var XMLdaten = new XML(); 
XMLdaten.ignoreWhite=true; 
XMLdaten.load("member.php"); 
XMLdaten.onLoad = function(success) { 
    if(success){
        anzahl = XMLdaten.firstChild.childNodes.length; 
        daten = [];
        for (var i=0; i<anzahl; i++) { 
            daten[i] = XMLdaten.firstChild.childNodes[i].attributes.anzeige;
        } 
    }
}

aber wie erstelle ich nun damit eine Tabelle. Soll ich da irgendwie immer ein Textobjekt machen und den Inhalt des arrays rein machen oder gibt es da noch was einfacheres.

Und wie schaffe ich es dass sich die Größe des Flashfilms an die Größe der Tabelle ausrichtet
 
Hi,

ich würde in der Tat für jede Zelle ein Textfeld erstellen, und diese Textfelder danach so ausrichten, dass der horizontale Abstand der Breite, und der vertikale der Höhe des längsten Zelleninhaltes entspricht (dazu habe ich hier im Forum schon ein Beispiel gepostet)

Du solltest generell ein 2-dimensionales Array erstellen, wobei jede Zeile einen XML-Knoten entspricht, und jede Spalte dem jeweiligen Attribut.

Du könntest auch nur für jede Zeile ein Textfeld anlegen, und die Spalten mit der "tabStops"-Eigenschaft des TextFormat-Objektes festlegen.

Wenn du mit Komponenten arbeiten willst, könntest Du die DataGrid-Komponente zur Anzeige verwenden.

Die Breite des Flashfilms kannst Du mit Flash nicht anpassen, da sie von der Einbindung in die html-Seite abhängt. Die Bühnengröße lässt sich allerdings per JavaScript ändern (auch dazu habe ich hier im Forum schon ein Beispiel gepostet).

Gruß
.
 
ähm ok das sind sehr viele neue Sachen. Eine Frage wie kann ich dort 1 2D array erstellen?
Das kapiere ich noch nicht muss ich da einfach anstatt daten = []; das hier nehmen
daten_xml:Array = new Array(daten []);
 
Hi,

ein einfaches Beispiel:
Code:
var daten = new Array(); // Array für die Zeilen

for (var z=0; z<zeilen; z++) {
    daten[z] = new Array(); // Jedes Element einer Zeile wird als neues Array definiert
    for (var x=0; x<spalten; x++) {
        daten[z][x] = "Wert der Spalte " + x + " in Zeile " + y;
    }
}

Gruß
.
 
Zurück