Estoy haciendo una pequena aplicacion para conectar flash con mySQL mediante PHP. Cuando la consulta a mySQL esta bien, todo funciona perfecto. Sin embargo, cuando fuerzo algun error (con la intención de que me regerse el mensaje de error) flash se queda esperando la respuesta del PHP y nunca muestra el mensaje de error.
El PHP genera un xml con la data si todo es correcto, caso contrario genera un xml con el codigo y descripcion del ERROR:
Código PHP :
<?php header("Cache-Control: no-store, no-cache, must-revalidate"); require_once("conectar_sql.php"); $consulta = "SELECT * FROM SIS_LOCALIDAD WHERE dsc_activo = 'SI' ORDER BY `SIS_LOCALIDAD`.`dsc_localidad` ASC"; $resultado = $mysqli->query($consulta); if($resultado) { header("Content-Type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; echo "<Resultados>\n"; while ($fila = $resultado->fetch_assoc()) { echo "<entrada>\n"; echo "<codigo>". $fila['cod_localidad'] . "</codigo>\n"; echo "<descripcion>" . $fila['dsc_localidad'] . "</descripcion>\n"; echo "</entrada>\n"; } echo "</Resultados>"; } else { header("Content-Type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; echo "<Resultados>\n"; echo "<entrada>\n"; echo "<codigo>". "ERROR" . "</codigo>\n"; echo "<descripcion>" . "NO SE PUDO REALIZAR LA CONSULTA" . "</descripcion>\n"; echo "</entrada>\n"; } $mysqli->close(); ?>
En flash tengo:
Código ActionScript :
_loader.addEventListener(Event.COMPLETE, Respuesta); _loader.addEventListener(IOErrorEvent.IO_ERROR, RespuestaError); _loader.load(_request); public function Respuesta(e:Event) { var xml:XML = new XML(e.target.data); var campos:XMLList = xml..entrada; var xmlDescripcion:Array = new Array(); var xmlCodigo:Array = new Array(); if (xml..codigo[0] == "ERROR") { miMC.Notificaciones(xml..descripcion[0], 3); } else { for (var i:uint=0; i<xml..codigo.length(); i++) { xmlDescripcion.push(xml..descripcion[i]); xmlCodigo.push(xml..codigo[i]); miCombo.addItem( { label: xmlDescripcion[i], data:xmlCodigo[i] } ); } } miMC.holder.visible = false; } public function RespuestaError(e:Event) { miMC.Notificaciones("ERROR CARGANDO EL XML", 3); }
El error que "fuerzo" es cambiando el nombre de la tabla en la consulta en el PHP, le coloco un nombre que no existe para que me retorne un error.
Muchas gracias por su tiempo y ayuda