bueno asi no, yo uso cadena simplemente para imprimir para mas nada si te das cuenta yo no uso cadena en el codigo de actionscript
, a ver te explico lo qu hago dentro de este while
Código :
$i=0;
$cadena="";
while ($rows= mysql_fetch_array($result)){
$cadena.="&id".$i."=".$rows["id"];
$cadena.="&nombre".$i."=".$rows["nombre"];
$cadena.="&comentarios".$i."=".$rows["comentarios"];
$i++;
inicializo i es decir vale 0
inicializo cadena es decir pongo una cadena vacia
recorro el resultado(como un arreglo) que me arrojo el query, y cada elemento del array se lo voy asignando a rows, suponiendo con valores de
id =0, nombre=Maikel, comentarios= explicando LoadVars con php, entonces la primera vez que se ejecuten esas sentencias cadena quedaria:
Código :
$cadena=&id0=0&nombre0=Maikel&comentarios0=explicando LoadVars con php
ahora vamos a suponer que hay otros valores, suponiendo
id=1 nombre = juanes comentarios=solicitando ayuda , entonces cadena quedaria asi
Código :
$cadena=&id0=0&nombre0=Maikel&comentarios0=explicando LoadVars con php&id1=1nombre1=juanes&comentarios=solicitando ayuda
cuando hacemos el echo &cadena o echo utf8_encode(&cadena) php nos imprimiria esto:
&id0=0&nombre0=Maikel&comentarios0=explicando LoadVars con php&id1=1nombre1=juanes&comentarios=solicitando ayuda
y eso es lo que flash leería.
ahora por que lo hago así?
pues alli estoy construyendo i-1 variables es decir variable0 y variable1 si i es igual 2, los nombres de dichas variables en este ejemplo seria id0, nombre0 comentarios0, id1, nombre1, comentarios1, dichas variables las podras acceder por el objeto LoadVars que tienes en flash, en tu caso Datos entonces despues de que se ejecutara el script php e imprima las variables con sus respectivos valores se ejecuta el evento onLoad del objeto Datos y podras acceder a estas variables con el nombre de instancia del objeto (en tu caso Datos) + un punto +variable que te imprimio php, por ejemplo:
si haces esto:
Código :
trace(Datos.nombre0);
te imprimiria en la ventana de salida Maikel, ahora si te das cuenta yo no uso Datos sino this, esto es sencillamente porque estoy dentro de un evento(o funcion como lo entiendas mejor) del objeto Datos y me estoy referiendo a él, es una recomendación usar this te evitará mucho dolores de cabeza
, es decir:
esto
Código :
Datos.onLoad = function (success:Boolean){
for(j=0;this["cadena"+j]!=undefined;j++){
combo_m.additem (this.cadena);
}
}
es igual a esto:
Código :
Datos.onLoad = function (success:Boolean){
for(j=0;Datos["cadena"+j]!=undefined;j++){
combo_m.additem (this.cadena);
}
}
pero como te digo es mejor usar this y evita dolores de cabeza
Ahora ese codigo tiene algo un poco de nivel avanzado si se puede llamar asi, lo digo por el undefined, en Actionscript tu puedes saber si una variable, objeto, etc. existe o no tiene valor si es diferente(!=) de undefined (indefinido).
ah por cierto cuando hago esto dentro del while alla arriba
Código :
$rows["id"];
es porque el resultado del query tiene un campo(de la tabla(s) de la BD) llamado id, al igual que los otros(nombre y comentarios);
Bueno creo que eso es todo
saludos