AMFPHP clases para Remoting - ActionSctipt 3 | Phoxer.com
AMFPHP clases para Remoting - ActionSctipt 3
02/01/2008

Desde que utilizo ActionScript 2 y últimamente con ActionScript 3, Remoting y AMFPHP, estuve desarrollando métodos para manejar bases de datos MySql lo más simple posibles.
Ya pasaron 3 años que vengo mejorando los métodos (clases) de php para AMFPHP utilizando la tecnología Remoting y llegue a un punto en que tengo métodos reutilizables muy simples de usar:

Asi se implementa desde AS3:

import phoxer.DataManager.Remoting;
 
var superUrl:String="http://www.phoxer.com"; //Path to amfphp;
var rm:Remoting = new Remoting(String(superUrl+"/amfphp/gateway.php"),onError);
 
function onError():void{
	//si existe algun error
}
 
private function getTags():void{
	var obj:Object = new Object();
	obj.tabla = "tags";
	obj.principal = "id";
	obj.orden = "ASC";
	rm.setConeccion(obj,"mysql","consulta",setTags);
}
 
private function setTags(dts:Array):void{
	for each(var dt:Object in dts){
		trace(dt); //Resultados
	}
}
 
getTags()

con esta simple método rm.setConeccion() obtenemos los resultados..
simple no?..

veamos los metodos en php que tengo programados y que uso siempre:

<?php
//-MySql BY .:[PHOXER]:.
//-http://www.phoxer.com
//-v  2.0.0;
 
class mysql{
	function mysql(){
		$this->connect();
	}
 
//CONSULTA LOS VALORES Y LOS NOMBRES DE LOS CAMPOS
   function consulta($obj){
	 	$tabla=$obj['tabla'];
		$principal=$obj['principal'];
		$orden=$obj['orden'];
        $filtro=$obj['filtro'];
		$same=$obj['same'];
		$like=$obj['like'];
		$limit=$obj['limit'];
		$select=$obj['select'];
		//-limit
		if($limit!="" && $limit!=NULL){
			$limite= " LIMIT ".$limit;
		}else{
			$limite="";
		}
		//-Select
		if($select!="" && $select!=NULL){
			$selected= "`".$obj['select']."`";
		}else{
			$selected="*";
		}
		//-SQL
		if($filtro!="" && $filtro!=NULL && $same!="" && $same!=NULL) {
				$sql="SELECT ".$selected." FROM ".$tabla." WHERE ".$filtro." ='".$same."' ORDER BY ".$principal." ".$orden." ".$limite;
		}else if($filtro!="" && $filtro!=NULL && $like!="" && $like!=NULL){
				$sql="SELECT ".$selected." FROM ".$tabla." WHERE ".$filtro." LIKE '%".$like."%' ORDER BY ".$principal." ".$orden." ".$limite;
		}else{
				$sql="SELECT ".$selected." FROM ".$tabla." ORDER BY ".$principal." ".$orden." ".$limite;
		}
		$result=mysql_query($sql);
		$i=0;
		$objeto = array();
		while($row=mysql_fetch_object($result)){
			$objeto[$i]=$row;
			$i++;
		}
		return $objeto;
	}
//CONSULTA LOS VALORES CON FILTROS MULTIPLES
function search($obj){
	$tabla=$obj['tabla'];
	$principal=$obj['principal'];
	$orden=$obj['orden'];
	$filtros=$obj['filtros'];
	$same=$obj['same'];
	$like=$obj['like'];
	$limit=$obj['limit'];
	if($limit!="" && $limit!=NULL){
		$limite= " LIMIT ".$limit;
	}else{
		$limite="";
	}
	$filtro="";
	$i=0;
	foreach($filtros as $campo){
		if($same[$i]!="" || $like[$i]!=""){
			if($i==0){
				$filtro.="WHERE ";
			}
			if($i>0){
				$filtro.=" AND ";
			}
			if($same[$i]!=""){
				$filtro.=$campo."='".$same[$i]."'";
			}else if($like[$i]!=""){
				$filtro.=$campo." LIKE '%".$like[$i]."%'";
			}
			$i++;
		}
	};
	$sql="SELECT * FROM ".$tabla." ".$filtro." ORDER BY ".$principal." ".$orden." ".$limite;
	$result=mysql_query($sql);
	$r=0;
	$objeto = array();
	while($row=mysql_fetch_object($result)){
		$objeto[$r]=$row;
		$r++;
	}
	return $objeto;
}
 
//INSERTAR
		function insertar($obj){
				$tabla=$obj['tabla'];
				$datos=$obj['datos'];
				$camps="";
				$vals="";
				foreach($datos as $cam => $val){
					$camps.= "`".$cam."`,";
					$vals.= "'".addslashes($val)."',";
				}
				$camps=substr ($camps, 0, -1);
				$vals=substr ($vals, 0, -1);
				$sql="INSERT INTO `".$tabla."` (".$camps.") VALUES (".$vals.");";
				$result=mysql_query($sql);
 
				$check->newid = mysql_insert_id();
				$check->saved = $result;
				return $check;
		}
 
//MODIFICAR	
		function modificar($obj){
				$tabla=$obj['tabla'];
				$datos=$obj['datos'];
				$campo=$obj['campo'];
				$valor=$obj['valor'];
				$sets="";
				foreach($datos as $cam => $val){
					$sets.= "`".$cam."`='".addslashes($val)."',";
				}
				$sets=substr ($sets, 0, -1);
				$sql="UPDATE `".$tabla."` SET ".$sets." WHERE ".$campo."='".$valor."';";
				$result=mysql_query($sql);
 
				$check->saved = $result;
				return $check;
		}
//BORRAR
        function eliminar($obj){
                $sql="DELETE FROM ".$obj['tabla']." WHERE ".$obj['campo']."='".$obj['valor']."'";
                $result=mysql_query($sql);
                return $result;
        }
//BORRAR VARIOS	
        function eliminarVarios($obj){
                $numreg=count($obj['valores']);
                for($i=0;$i<$numreg;$i++){
                        $id=$obj['valores'][$i];
                        $sql="DELETE FROM ".$obj['tabla']." WHERE ".$obj['campo']."='".$id."'";
                        $result=mysql_query($sql);
                };
                return $result;
        }
 
//CONSULTA Y DEVUEVE LOS NOMBRES DE LOS CAMPOS
        function checkCampos($obj){
                $tabla=$obj['tabla'];
                $sql="SELECT * FROM ".$tabla." LIMIT 1" ;
                $result=mysql_query($sql);
                $i=0;
                while ($i < mysql_num_fields($result)) {
                   $meta = mysql_fetch_field($result, $i);
                   $objeto[$i]=$meta->name;
                   $i++;
                }
                return $objeto;
        }
//CONECCION
	function connect(){
		include("database.php");
	}
 
}

Con estos metodos simples se puede controlar la base de datos desde mi Clase Remoting.