Okas.. te explico mi metodo... es un poco largo pero da buenos resultados..
Digamos que tengo una tabla en MySQL llamada USUARIO, cuyos campos son: cod_usuario, dsc_nombre, dsc_paterno, y yo quiero recuperar todos estos datos, entonces creamos primero el PHP de la siguiente manera (colocar como nombre de archivo (ArchivoConsulta.php):
Código PHP :
<?php
$enlace = mysql_connect("localhost", "xxx", "yyy");
$db = mysql_select_db("zzz", $enlace);
$query = "select * from USUARIO";
$resultID = mysql_query($query, $enlace);
$xml_output .= "<Resultados>\n";
for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){
$row = mysql_fetch_assoc($resultID);
$xml_output .= "\t<entrada>\n";
$xml_output .= "\t\t<codigo>" . $row['cod_usuario'] . "</codigo>\n";
$xml_output .= "\t\t<nombre>" . $row['dsc_nombre'] . "</nombre>\n";
$xml_output .= "\t\t<apellido>" . $row['dsc_paterno'] . "</apellido>\n";
$xml_output .= "\t</entrada>\n";
}
$xml_output .= "</Resultados>";
$fh = fopen("ArchivoDatos.xml","w");
fwrite($fh,$xml_output);
$fin = fclose($fh);
$respuesta = "&mensaje=$fin";
echo ($respuesta);
?>
De esta manera hacemos una consulta y con los datos que hemos obtenido generamos un xml (que es lo que necesitas).
Luego, en flash colocas el siguiente codigo:
Código ActionScript :
var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();
import mx.controls.gridclasses.DataGridColumn;
archivo_xml = new XML();
archivo_xml.ignoreWhite = true;
detector = new Object();
envio_lv.sendAndLoad("ArchivoConsulta.php",recibir_lv,"POST");
recibir_lv.onLoad = function(exito)
{
if (exito)
{
archivo_xml.load("ArchivoDatos.xml");
}
};
archivo_xml.onLoad = function(success)
{
if (success)
{
largo = archivo_xml.firstChild.childNodes.length;
indice = new Array(largo);
codigo = new Array(largo);
nombre = new Array(largo);
apellido = new Array(largo);
for (i = 0; i < largo; i++)
{
indice[i] = i + 1;
codigo[i] = archivo_xml.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue;
nombre[i] = archivo_xml.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue;
apellido[i] = archivo_xml.firstChild.childNodes[i].childNodes[2].firstChild.nodeValue;
}
llenarDataGrid();
}
else
{
resultado.text = "NO CARGO XML";
}
};
function llenarDataGrid()
{
misCeldas.editable = false;
misCeldas._x = 25;
misCeldas._y = 40;
misCeldas.headerHeight = 20;
misCeldas.resizableColumns = true;
misCeldas.selectable = false;
misCeldas.showHeaders = true;
misCeldas.sortableColumns = true;
losDatos = new Array();
misCeldas.dataProvider = losDatos;
for (i = 0; i < nombre.length; i++)
{
losDatos.addItem({INDICE:indice[i], codigo:codigo[i], nombre:nombre[i], apellido:apellido[i]});
}
misCeldas.getColumnAt(0).width = 50;
misCeldas.getColumnAt(1).width = 110;
misCeldas.getColumnAt(2).width = 110;
misCeldas.getColumnAt(3).width = 100;
}
El nombre de instacia de tu DataGrid debe ser misCeldas.
Listo! con eso conseguirias lo que necesitas.
Avisame si todo salio bien!!
Saludos