Comunidad de diseño web y desarrollo en internet online

Tuto AMFPHP base de datos modificando HELP !!

Citar            
MensajeEscrito el 01 Mar 2006 10:29 am
Hola estoy intentando ampliar un poco el programa del tuto para q los datos del datagrid sean introducidos, eliminados etc... en una tabla distinta dependiendo del usuario que este utilizando la aplicacion del tuto. Esto lo quiero hacer pasando una variable global en las funciones esta sera la que defina en que tabla se trabajara, repito una diferente para cada usuario. En el registro de mi pagina cada vez que alguien se registra se crea de forma automatica una tabla para cada usuario, ahora quiero ver como hacer para que al loguearse se active la tabla de dicho usuario para que cada uno tenga su propia tabla.

Estoy haciendo pruebas y no logro resultados necesito algo de ayuda explico lo q tengo hasta el momento:

al logearse los usuarios hago lo siguiente

_global.usuario = usuario.text <<--- cojo la variable usuario

Ahora intento con esta varible hacer lo dicho pero seguro q hago algo mal esta aqui mi duda cuando lo hago se queda consultando. Pongo aqui misquerys y el actionscript

misquerys:

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","usuario") //<-- Parametros del metodo
      ),
      "eliminar" => array (
                        "description" => "elimina un registro",
                        "access" => "remote",
                        "arguments" => array("id","usuario")
                     ),
   "modificar" => array (
                        "description" => "modifica un registro",
                        "access" => "remote",
                        "arguments" => array("id","nombre","comentarios","usuario")
   ),
   "consulta" => array (
                        "description" => "consulta n campos",
                        "access" => "remote"
                "arguments" => array ("usuario")
   ),
   "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,$usuario){
   $nombre = utf8_encode($nombre); 
   $usuario = utf8_encode($usuario);      
   $comentarios = utf8_encode($comentarios);//<-- igual
     //creamos la cadena de nuestra sentencia(query) SQL
      $sql= "INSERT INTO $usuario (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,$usuario){
                                $usuario = utf8_encode($usuario);
         //creamos la cadena de nuestra sentencia(query) SQL
         $sql= "DELETE FROM $usuario 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,$usuario){
         $nombre = utf8_encode($nombre);
                                $usuario = utf8_encode($usuario);
      $comentarios = utf8_encode($comentarios);
         //creamos la cadena de nuestra sentencia(query) SQL               
         $sql = "UPDATE `sufuric` 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 ($usuario){
                                $usuario = utf8_encode($usuario);
         //creamos la cadena de nuestra sentencia(query) SQL
                $sql = "SELECT * FROM sufuric 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("localhost","user","pass") or die("no se puede conectar porque ".mysql_error());
            mysql_select_db("basedatos");
            $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 
         }
    }
?>

HASTA aqui mysquerys perdon por el desorden

Ahora el actionscript: (no lo pongo entero solo los cambios que son pocos)

Código :

var accion:Number;
alClick.click = function (boton){
   switch(boton.target){
      case btnConsultar:
                                    servicio.consulta(usuario); <--- aqui he hecho un cambio

y despues en las otras funciones:

case 1: //insertar
               servicio.insertar(escape(nombretxt.text), escape(comentariostxt.text),escape(usuario));
//               trace("confirmo insertar");
               break;
            case 2: //modificar id,  nombre, comentarios
               servicio.modificar(idtxt.text,escape(nombretxt.text),escape(comentariostxt.text),escape(usuario));
//               trace ("confirmo modificar");
               break;
            case 3:
               servicio.eliminar(idtxt.text,escape(usuario));
//               trace ("confirmo modificar");               
               break;


Bueno decir que no me va alguna idea?? GRACIAS

Por sulfuric

16 de clabLevel



 

msie
Citar            
MensajeEscrito el 01 Mar 2006 04:26 pm
Primero:
Creas una tabla por cada usuario registrado :? , o creas un registro por cada usuario registrado... Si creas una tabla, vaya me gustaria saber la razón de eso sinceramente... tu código no me ayudo a despejar la duda porque en el DELETE parece que cada usuario es una tabla

Código :

$sql= "DELETE FROM $usuario WHERE id='".$id."' LIMIT 1";


el sql del DELETE es algo asi ;) :

Código :

DELETE FROM tabla WHERE [condicion] LIMIT [cuantos]


y en las demas consultas parece que usuario es un registro dentro de la tabla sulfuri

saludos ^^

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 01 Mar 2006 07:57 pm
Creo una tabla dentro de la base de de datos con el fin que casa usuario tenga la suya asi cada uno tenga sus contactos y sus comentarios sin que otros puedan verlos modificarlos etc....

me equivoque aqui tienes razon no es sulfuric es $usuario para que cada uno acceda a su tabla

aqui la correccion del error

Código :

//creamos la cadena de nuestra sentencia(query) SQL
$sql = "UPDATE `sufuric` 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 ($usuario){
 $usuario = utf8_encode($usuario);         //creamos la cadena de nuestra sentencia(query) SQL                $sql = "SELECT * FROM sufuric 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){

Por sulfuric

16 de clabLevel



 

msie
Citar            
MensajeEscrito el 01 Mar 2006 08:00 pm
//creamos la cadena de nuestra sentencia(query) SQL
$sql = "UPDATE `$usuario` 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 ($usuario){
$usuario = utf8_encode($usuario); //creamos la cadena de nuestra sentencia(query) SQL
$sql = "SELECT * FROM $usuario 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){

Por sulfuric

16 de clabLevel



 

msie
Citar            
MensajeEscrito el 01 Mar 2006 08:23 pm
pues creo que deberias hacer un diseño de la base de datos primero, no tienes un diseño de base datos, hacer una tabla por cada usuario :S .

Vamos estudia un poco sobre Diagrama de flujo de Datos de base de datos, normalizacion y luego sql, te servirá de mucho ;)

saludos ^^

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 02 Mar 2006 01:34 am
Si, la base de datos ya esta creada y funciona perfectamente si por ejemplo en mysquerys utilizo algo como en el ejemplo Tuto AMFPHPH es decir:

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 }

pero lo que quiero es que la tabla no sea siempre fija en mysquerys (prueba), quiero pasarla desde flash con una variable, en mi caso usuario (aunque podria ser cualquiera claro esta, lo que no tengo muy claro es como pasar dicha variable desde flash a mysquerys en el ejemplo de la funcion consulta seria algo asi lo que he intentado, esta bien asi? alguna sugerencia

la variable la paso desde flash en esta linia
servicio.consulta(escape(usuario); <<-- esto esta bien no???

function consulta ($usuario){ <<--- Luego la coge aqui deberia funcionar??
$usuario = utf8_encode($usuario);
//creamos la cadena de nuestra sentencia(query) SQL
$sql = "SELECT * FROM $usuario ORDER BY id ";
return $this->query($sql,0); //retornamos el recordset de la consulta }

Tengo conocimientos de base de datos suficientes creo o almenos eso pienso, el problema es que no tengo muy claro como pasar la variable

GRACIAS

Por sulfuric

16 de clabLevel



 

msie
Citar            
MensajeEscrito el 02 Mar 2006 01:50 am
ok, si esta bien lo que estas haciendo, no entiendo porque te da error... ahora si usas una version igual o superior a AMFPHP 1 Milestone 2, quita los escape del codigo actionscript y los utf8_encode del codigo php porque no hacen falta.

de todas maneras prueba misquerys.php solamente con php, agrega esto:

Código :

    } //-> esta llave es la que cierra class misquerys{
if(basename($_SERVER['PHP_SELF'])=="misquerys.php")
{
    $test=new misquerys();
    $result=$test->consulta("pon el nombre de usuario aqui");
    while($reg=mysql_fetch_array($result))
    {
    echo $reg["nombre"].'<br>';
    }    
}
?> //fin del codigo php


abres ese archivo desde el navegador, y ve si te hace la consulta correctamente...


saludos ^^

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 02 Mar 2006 11:08 pm
Gracias y enhorabuena por tu tutorial es muy bueno y se pueden sacar muchas utilidades voy a probar a ver si se me escapa algo. Ciao

Por sulfuric

16 de clabLevel



 

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.