He seguido (creo que al pie de la letra) el tuto de Bases de Datos con Flash y AMFPHP de Maikel y cuando la pelicula, me da el siguiente error:
Fuck un error, por:mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Unknown MySQL server host 'http' (11001)
Además cuando lo pruebo en localhost no funciona
En el directorio raiz es localhost/chemaremoto y dentro de éste y colocado la carpeta remoting
que a su vez contiene la carpeta services y ésta contiene el archivo misquerys.php cuyo código está más abajo.
Reconozco que estoy totalmente perdido.
Espero que me podais echar un cable.
Gracias. Un saludo
Os cuelgo el código:
código flash:
Código :
import mx.remoting.NetServices;
import mx.remoting.Connection;
mx.remoting.debug.NetDebug.initialize();
//Pon la URL de tu gateway aqui
NetServices.setDefaultGatewayUrl("http://localhost/chemaremoto/remoting/gateway.php");
conexion = NetServices.createGatewayConnection();
capturaRespuesta = new Object();
servicio = conexion.getService("misquerys",capturaRespuesta);
capturaRespuesta.onStatus = function (data){
trace("Fuck un error, por:" +data.description);
}
//el resto del código es igual al del ejemploy el código PHP:
Código :
<?php
class misquerys{ //<--nombre de la clase igual al nombre del archivo
function misquerys (){ //<-- constructor de la clase, nombre igual al de la clase
$this->methodTable = array( //<--definimos lo metodos que tendra nuestra clase
"insertar" => array ( //<-- Metodo insertar
"description" => "inserta un registro", //<--Comentario del metodo, describimos que hace dicho metodo
"access" => "remote", //<-- tipo de acceso del metodo, posibles valores public, remote y private
"arguments" => array("nombre","comentarios") //<-- Parametros del metodo
),
"eliminar" => array (
"description" => "elimina un registro",
"access" => "remote",
"arguments" => array("id")
),
"modificar" => array (
"description" => "modifica un registro",
"access" => "remote",
"arguments" => array("id")
),
"consulta" => array (
"description" => "consulta n campos",
"access" => "remote"
),
"query" => array (
"description" => "ejecuta un query en MySQL",
"access" => "private",
"arguments" => array ("sql","accion")
)
);
}
//IMPLEMENTACION DE LOS METODOS//
//Parametros $nombre y $comentarios los que vamos a insertar en los respectivos //
//campos de la Base de Datos, el id se genera automaticamente//
function insertar($nombre,$comentarios){
$nombre = utf8_encode($nombre); //<-- utf8_encode para que php entienda el escape() de flash
$comentarios = utf8_encode($comentarios);//<-- igual
//creamos la cadena de nuestra sentencia(query) SQL
$sql= "INSERT INTO prueba (id,nombre,comentarios) VALUES ('','".$nombre."','".$comentarios."')";
return $this->query($sql,1);//retornamos el id de nuestro registro insertado
}
//Parametro $id, para saber que registro vamos a eliminar de la Base de Datos
function eliminar ($id){
//creamos la cadena de nuestra sentencia(query) SQL
$sql= "DELETE FROM prueba WHERE id='".$id."' LIMIT 1";
return $this->query($sql,0); //retornamos 1 si se elimino correctamente y 0 en caso contrario
}
//Parametros $id, $nombre y $comentarios, el $id para saber que registro vamos a modificar
// $nombre y $comentarios para hacer la respectiva modificación de nuestro registro
function modificar ($id,$nombre,$comentarios){
$nombre = utf8_encode($nombre); //<-- utf8_encode para que php entienda el escape() de flash
$comentarios = utf8_encode($comentarios);
//creamos la cadena de nuestra sentencia(query) SQL
$sql = "UPDATE `prueba` SET `nombre` = '".$nombre."', `comentarios` = '".$comentarios."' WHERE `id` = ".$id." LIMIT 1;";
return $this->query($sql,0); //retornamos 1 si se modifico correctamente y 0 en caso contrario
}
//Parametros ninguno
function consulta (){
//creamos la cadena de nuestra sentencia(query) SQL
$sql = "SELECT * FROM prueba ORDER BY id ";
return $this->query($sql,0); //retornamos el recordset de la consulta
}
//Parametros sql que contendra la sentencia SQL que se ejecutara
//y accion en tal caso de que sea un INSERT haremos una excepcion
//y retornaremos el nuevo id del registro recien insertado
function query ($sql, $accion){
$conex= mysql_connect("http://localhost","miusuario","mipass") or die("no se puede conectar porque ".mysql_error());
mysql_select_db("misdatos");
$result= mysql_query($sql,$conex);
if ($accion && result){ //Excepcion del INSERT, comparamos result por si la inserción fue correcta :P
$result= mysql_insert_id();
}
mysql_close($conex);
return $result; //Consultar retonara un recordSet
//Modificar y Eliminar 1 si fue correcto o 0 en caso contrario
//Insertar retornara el id recien creado
}
}
?> 