En el Internet tenemos algunos ejemplos del uso del AMFPHP para la creación de RIA. Veremos que elaboró algo más que “hola un mundo” y ése realmente nosotros van a necesitar y utilizar, vamos populares un Datadrid usando el AMFPHP. Nos iremos de estimado que usted tiene noción de MySQL, de PHP, del flash y del flash de Remoting. Primero nuestra estructura de la base de datos será simple, tendrá el email y teléfono conocidos. Vamos a crear la tabla y a insertar algunos registros adentro.
[sql]
##table usuarios
CREATE TABLE `usuarios` (
`id` int(4) unsigned NOT NULL auto_increment,
`nome` char(80) default NULL,
`email` char(100) default NULL,
`telefone` char(10) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM ;
INSERT INTO `usuarios` VALUES (”, ‘Fulano’, ‘fulano@fulanodetal.com.br’,’555555555′);
INSERT INTO `usuarios` VALUES (”, ‘Sicranos’, ‘sicrano@sicranodetal.com’, ‘55555555’);
INSERT INTO `usuarios` VALUES (”, ‘É Nois na Fita’, ‘eu@nois.com.br’, ‘44444444’);
INSERT INTO `usuarios` VALUES (”, ‘E Ai como vai’, ‘meu@amigo.net’, ‘22222222’);
INSERT INTO `usuarios` VALUES (”, ‘Eu Bebo Sim’, ‘cachaca@daboa.net’, ‘22222222’);[/sql]
Tenemos nuestra tabla de la base de datos creada, ahora crearemos la sala de clase del AMFPHP que hará conexa con el banco y volverá los datos para el flash.
[php]< ?php
class query{
var $host = "localhost";
var $user = 'root';
var $database = 'seubanco';
var $pass = 'suasenha';
function query(){
$this->methodTable = array(
“get_user”=>array(
“description”=>”populando nosso datagrid”,
“access”=>”remote”
)
);
$this->conexao = mysql_pconnect($this->host,$this->user,$this->pass);
mysql_select_db($this->database);
}
function get_user(){
$query = mysql_query(“SELECT * FROM usuarios”);
if (!mysql_error()) {
return $query;
}else {
return mysql_error();
}
}
}?>[/php]
Hasta aquà toda la certeza, ahora vamos al flash. Abre un nuevo documento, vamos a utilizar tan una capa y un marco para importar todas las salas de clase necesarias del Remoting destella.
[as]//classes do Flash Remoting
import mx.remoting.Service;
import mx.services.Log;
import mx.rpc.RelayResponder;
import mx.rpc.FaultEvent;
import mx.remoting.DataGlue;
import mx.rpc.ResultEvent;
import mx.remoting.PendingCall;
import mx.remoting.RecordSet;
//criando a conexão do flash remoting para o AMFPHP
//coloque o endereço do seu servidor e a sua classe
var conexao = new Service(“http://localhost//flashservices/gateway.php”, new Log(), “query”, null, null);
//chamando o metodo get_user()
var pcs:PendingCall = conexao.get_user();
pcs.responder = new RelayResponder(this, “user_Result”, “user_Fault”);
function user_Result(res:ResultEvent) {
var grid = _root.createClassObject(mx.controls.DataGrid, “dg”, _root.getNextHighestDepth(), {_x:20, _y:20});
grid.setSize(400, 350);
grid.dataProvider = res.result;
}
function user_Fault(fault:FaultEvent) {
trace(fault.fault.faultstring);
}[/as]
¿E que acabamos, usted debe ser si pide, y el DataGrid? ¿Dónde él está? No tenemos lugares él en la pelÃcula. La contestación no es, porque será dinámicamente creado en la lÃnea:
[as]var grid = _root.createClassObject(mx.controls.DataGrid, “dg”, _root.getNextHighestDepth(), {_x:20, _y:20});[/as]
El DataGrid será creado con el nombre del rancho “dg” y en posiçoes x = 20 y y = 20. Ese setSize() se determina pronto después su tamaño con el método. El único requisito es que el componente de DataGrid está en la biblioteca de la pelÃcula. ¿Un momento, pero si I a desear demostrar solamente algunos campos en datagrid? Dos métodos para esto, uno existen con la escritura de la acción (más laboriosa) y otra en la sala de clase apropiada del AMFPHP demostrado para seguir:
Es bastante para cambiar la lÃnea de la sala de clase del AMFPHP.
[php]$query = mysql_query(“SELECT nome,email FROM usuarios”);[/php]
En los artÃculos siguientes que demostraré en cuanto a el instrumento nuestro uso que inserta, corrigiendo y excluyendo los registros de la base de datos asà como el configuración de la disposición y dirigir de nuestro DataGrid.
AMFPHP
http://www.amfphp.org/
Macromedia Flash Remoting
http://www.macromedia.com/devnet/flashremoting/