bueno, lo siento, disculpen...
en si el problema que tengo es que no da ningun error, pero tampoco es capaz de pasar las variables de mysqlite las variables de flex, por lo menos la clase conexioon.php tendria que estar bien ya que la he utilizado en proyectos web pero no me funciona en mi aplicacion de escritorio...
Código ActionScript :
<mx:Script>
<![CDATA[
import codigo.AccesoADatos;
import mx.controls.*;
import mx.events.*;
var accd:AccesoADatos= new AccesoADatos();
public function Comprobar ():void
{
var user:String= this.usuario.text;
var pass:String= this.contrasenia.text;
var s:String= "SELECT * FROM administradores WHERE (id ='" + user + "' AND contrasenia= '" + pass + "')" ;
var campos:Object = {'id':String, 'contrasenia':String, 'privilegio':String, 'vigente':String};
accd.consultaSQL(s, campos, respuesta);
}
private function respuesta(e:Object):void
{
if (e.HayError)
{
Alert.show("Hay un error: " + e.metadatos, "Error");
}
else
{
if (accd.Total() > 0)
{
var s:String= "Usuario encontrado y el privilegio es: " + accd.Datos()[0].privilegio;
Alert.show(s, "Acceso");
} else {
Alert.show("Usuario NO fue encontrado", "Acceso");
}
}
}
]]>
</mx:Script>Y LAS CLASES CONEXION SON ESTAS:
Código PHP :
<?php
/**
* connection settings
* replace with your own hostname, database, username and password
*/
$hostname_conn = "localhost";
$database_conn = "biblioteca";
$username_conn = "min";
$password_conn = "123";
$conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_conn, $conn);
mysql_query("SET NAMES 'utf8'");
?>
MI CLASE DE ACCESO A DATOS
Código ActionScript :
package codigo
{
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.managers.CursorManager;
import mx.rpc.AsyncToken;
import mx.rpc.events.*;
import mx.rpc.http.HTTPService;
public class AccesoADatos
{
private var _gateway:HTTPService = new HTTPService();
private var _datos:ArrayCollection = new ArrayCollection();
private var _campos:Object;
private var _total:int;
public function AccesoADatos(URL: String= "codigo/consultas.php")
{
this._gateway.url = URL;
this._gateway.method = "POST";
this._gateway.useProxy = false;
this._gateway.resultFormat = "e4x";
this._gateway.addEventListener(ResultEvent.RESULT, OnResultado);
this._gateway.addEventListener(FaultEvent.FAULT, OnFault);
this._campos= {};
this._total= 0;
}
public function Datos():ArrayCollection
{
return this._datos;
}
public function Total():int
{
return this._total;
}
private function OnResultado(e:ResultEvent):void
{
var topass:Object = {};
topass.originalEvent = e;
if (e.result.datos.elements("error").length() > 0)
{
topass.HayError = true;
topass.datos = e.result.data;
}
else
{
topass.HayError = false;
topass.metadatos = e.result.metadatos;
topass.datos = e.result.datos;
this._datos.removeAll();
this._total= 0;
for each(var row:XML in topass.datos.row)
{
var temp:* = {};
for (var key:String in this._campos)
{
temp[key] = row[key];
}
this._datos.addItem(temp);
this._total++;
}
topass.datos= this._datos;
}
e.token.handler.call(null, topass);
CursorManager.removeBusyCursor();
}
private function OnFault(e:FaultEvent):void
{
var errorMessage:String = "Error en la conexión: " + e.fault.faultString;
if (e.fault.faultDetail)
{
errorMessage += "\n\nDetalle: " + e.fault.faultDetail;
}
Alert.show(errorMessage);
CursorManager.removeBusyCursor();
}
private function SepararCampos(campos:Object):String
{
var cmp:String;
for (var campo:String in campos)
{
if (cmp == null)
cmp= campo
else
cmp= cmp + ', ' + campo;
}
return cmp;
}
public function consultar(tabla:String, campos:Object, condicion:String, evento:Function):void
{
this._campos= campos;
this._gateway.request['tabla'] = tabla;
this._gateway.request['campos'] = SepararCampos(campos);
this._gateway.request['condicion'] = condicion;
this._gateway.request['metodo'] = "CONSULTA";
CursorManager.setBusyCursor();
var llamada:AsyncToken = this._gateway.send();
llamada.request_params = this._gateway.request;
llamada.handler = evento;
}
public function consultaSQL(CadenaSQL:String, campos:Object, evento:Function):void
{
this._campos= campos;
this._gateway.request['SQL'] = CadenaSQL;
this._gateway.request['metodo'] = "SQL";
CursorManager.setBusyCursor();
var llamada:AsyncToken = this._gateway.send();
llamada.request_params = this._gateway.request;
llamada.handler = evento;
}
public function Administrar(consulta:String, evento:Function):void
{
this._gateway.request['consulta'] = consulta;
this._gateway.request['metodo'] = "ADMIN";
CursorManager.setBusyCursor();
var llamada:AsyncToken = this._gateway.send();
llamada.request_params = this._gateway.request;
llamada.handler = evento;
}
public function Encuesta(tabla:String, consultaP1:String, consultaP2:String, evento:Function):void
{
this._gateway.request['tabla'] = tabla;
this._gateway.request['consultap1'] = consultaP1;
this._gateway.request['consultap2'] = consultaP2;
this._gateway.request['metodo'] = "ADMIN";
CursorManager.setBusyCursor();
var llamada:AsyncToken = this._gateway.send();
llamada.request_params = this._gateway.request;
llamada.handler = evento;
}
public function DatosParaCombo(cmpKey:String, cmpLabel:String, LblConKey:Boolean= false, AgregarOtro:Boolean= false, LblOtro:String= '', KeyOtro:String= ''):ArrayCollection
{
var arr:ArrayCollection= new ArrayCollection;
for (var i:int= 0; i<this._total; i++)
{
var temp:*= {};
if (LblConKey){
temp['label']= this._datos[i][cmpKey] + " - " + this._datos[i][cmpLabel];
}else{
temp['label']= this._datos[i][cmpLabel];
}
temp[cmpKey]= this._datos[i][cmpKey];
temp[cmpLabel]= this._datos[i][cmpLabel];
arr.addItem(temp);
}
if (AgregarOtro)
{
var tmpotro:*= {};
tmpotro['label']= LblOtro;
tmpotro[cmpKey]= KeyOtro;
arr.addItem(tmpotro);
}
return arr;
}
}
}Y MI CLASE CONSULTAS:
Código PHP :
<?php
require_once(dirname(__FILE__) . "/conexion.php");
require_once(dirname(__FILE__) . "/functions.inc.php");
require_once(dirname(__FILE__) . "/XmlSerializer.class.php");
$ret = array(
"datos" => array("error" => "Sin operar"),
"metadatos" => array()
);
$tabla= @$_REQUEST["tabla"];
$campos= @$_REQUEST["campos"];
$condicion= @$_REQUEST["condicion"];
$cadena= LimpiarPlecas(@$_REQUEST["consulta"]);
$cadenaSQL= LimpiarPlecas(@$_REQUEST["SQL"]);
$condicion= LimpiarPlecas($condicion);
function LimpiarPlecas($cnd) {
$LPs= "";
$LPc= "";
for ($i= 0; $i<strlen($cnd); $i++)
{
$LPc= $cnd[$i];
if ($LPc == "\\"){
$LPs= $LPs."";
} else {
$LPs= $LPs.$cnd[$i];
}
}
return $LPs;
}
if (@$_REQUEST["metodo"] == "SQL"){
$consulta = mysql_query($cadenaSQL, $conn);
if ($consulta) {
$datos_ar = array();
while ($registros = mysql_fetch_assoc($consulta)) {
array_push($datos_ar, $registros);
}
$ret = array("datos" => $datos_ar, "metadatos" => array());
} else {
$ret = array(
"datos" => array("error" => mysql_error()),
"metadatos" => array()
);
}
}
if (@$_REQUEST["metodo"] == "CONSULTA"){
if ($condicion == ''){
$s= "SELECT $campos FROM $tabla";
} else {
$s= "SELECT $campos FROM $tabla WHERE $condicion";
}
$consulta = mysql_query($s, $conn);
if ($consulta) {
$datos_ar = array();
while ($registros = mysql_fetch_assoc($consulta)) {
array_push($datos_ar, $registros);
}
$ret = array("datos" => $datos_ar, "metadatos" => array());
} else {
$ret = array(
"datos" => array("error" => mysql_error()),
"metadatos" => array()
);
}
}
if (@$_REQUEST["metodo"] == "ADMIN"){
$consulta = mysql_query($cadena, $conn);
if ($consulta) {
$ret = array("datos" => array("ok" => "true"), "metadatos" => array());
} else {
$ret = array(
"datos" => array("error" => mysql_error()),
"metadatos" => mysql_error()
);
}
}
$serializer = new XmlSerializer();
echo $serializer->serialize($ret);
die();
?>