Bueno el problema es el siguiente, uso el HttpService para acceder a mi base de datos, usando un archivo en php, el problem consiste en lo siguiente:
Tengo un boton que me realiza una simple consulta, la funcion crea el objeto httpService y envia a php, el archivo .php recibe correctamente y me responde enciandome la consulta, recibo los datos sin ningun problema y los imprimo, lo que significa que todo funciona bien
Código ActionScript :
public function useHttpService(parameters:Object):void {
service = new HTTPService();
service.url = "conexion.php";
service.method = "POST";
service.addEventListener("result", httpResult);
service.addEventListener("fault", httpFault);
service.useProxy = false;
service.send(parameters);
}
public function httpResult(event:ResultEvent):void {
var result:Object = event.result;
if(result.users.user is ObjectProxy)
{
usuarios = new ArrayCollection([{titulo:result.users.user.titulo , texto:result.users.user.texto, id:result.users.user.id}]);
}
else
{
usuarios = result.users.user;//
}
}
public function httpFault(event:FaultEvent):void {
var faultstring:String = event.fault.faultString;
Alert.show("Existe un error al conectar con el servidor " + faultstring);
}
public function inicio():void
{
/*esta funcion deberia ser el problema, ya que cuando se ejecuta, solo me imprime el primer label creado con la
funcion Clabel(), y cuando le doy un segundo click recien accede al while
que estan las funciones q crean
componentes con los datos de la Base de datos.*/
VboxM1.removeAllChildren();
Contenedor2.visible = false;
var obj1 : Object = new Object();
var c : int =0;
obj1.opt = c;
useHttpService(obj1);
var cont:int=0;
Clabel("lblInicio1",10,10,450,"LAS ULTIMAS NOVEDADES DE NUESTRO SITIO",VboxM1,ContenedorM1,1,15,14874796,false,true,true);
while (cont<= usuarios.length)
{
Ctext("inicio"+cont.toString(),10,0,450,usuarios.getItemAt(cont).titulo.valueOf().toString() ,VboxM1,ContenedorM1,1,11,2321427,true,false,false);//2321427
CtextArea("inicio"+cont.toString(),20,0,450,usuarios.getItemAt(cont).texto.valueOf().toString() ,VboxM1,ContenedorM1,1,10,2321427);
Clabel("limite"+cont.toString(),10,0,460,"___________________________________",VboxM1,ContenedorM1,1,20,14874796,false,false,false);
cont ++;
}
}
// y aki la etiqueta en mxml para crear el boton y designar la funcion
<mx:Button label="Buscar" id="btBuscar" click="inicio()"/>
Código PHP :
<?php
$mysql = mysql_connect("localhost", "root", "mysql");
mysql_select_db( "mibase" );
switch ($_POST['opt'])
{
case 0:
{ $query = "Select * from tabla1 where id>= ((select MAX(id) from tabla1 )-2)";
}break;
$Result = mysql_query( $query );
$Return = "<users>";
while ( $User = mysql_fetch_object( $Result ) )
{
$Return .= "<user><id>".$User->id."</id><titulo>".$User->titulo."</titulo><texto>".$User->texto."</texto></user>";
}
$Return .= "</users>";
mysql_free_result( $Result );
print ($Return);
//aki hay mas casos
pero no lo pongo porq es lo mismo
y en esta query rescato las 3 ultimas inserciones y la envio, pero creo no creo q el problema este en el php
BUENO creo q este es el codigo base, pero quisiera que alguien me ayude, o si le tengo q poner espera antes de que entre al while de la funcion inicio(). Agradezco de antemano que revisen este codigo y me den sugerencias
