Comunidad de diseño web y desarrollo en internet online

Quien me ayuda con esta conexión a bd

Citar            
MensajeEscrito el 06 Nov 2006 05:19 pm
Necesito conectarme a una base de datos mysql desde una interfaz de flash, utilizando php pero no logro insertar la informacion en la bd, ya probé el fichero .php y está ok, pues directamente sin usar el flash se conecta bien, este es mi .php

Código :

<?
$host ="localhost";
$user ="root";
$passw="root";
$database="soft";
$tabla="libreta";

$link = @mysql_connect($host, $user, $passw)
   or die ("esto no se conectó");
mysql_select_db ($database)
   or die ("esto no se conectó");
if ($salida=="mostrar"){
   $query = "SELECT * FROM ".$tabla." ORDER BY id";
   $resultado = mysql_query($query);
   while ($columnas=mysql_fetch_array($resultado)){
   $text .= "<font color=\"#003366\"><b><u>Nombre</u>:</b>".$columnas['nombre']."</font>\n";
   $text .= "<font color=\"#003366\"><b><u>Apellido</u>: </b>".$columnas['apellido']."</font>\n";
   $text .= "<font color=\"#003366\"><b><u>Telefono</u>: </b>".$columnas['telefono']."</font>\n";
   $text .= "<font color=\"#003366\"><b><u>E-mail</u>: </b>".$columnas['email']."</font>\n";
   $text .= "<font color=\"#990000\"><b>Eliminar registro de: </b><a href=\"asFunction:EliminarReg,".$columnas['id']."\"><u>".$columnas['nombre']."</u></a></font>\n<br>";
   }
   print "&estado= ";//Mostramos los datos de la base de datos
   print "&datos=$text";

//************Si salida es igual a GUARDAR...************
   }elseif ($salida == "guardar"){
      $pregunta = "INSERT INTO ".$tabla." VALUES (NULL,'$nombre','$apellido','$telefono','$email')";
      if (@mysql_query($pregunta,$link)) {
         echo("<p>&datos=El cliente fue guardado satisfactoriamente ");
         print "&estado= ";
      } else {
         echo("<p>&datos=Error al guardar el cliente: " .
         mysql_error() ."");
      }

///********************ELIMINAR LOS DARTOS DE LA BD***************
if ($salida=="eliminar") {
   $elimina="DELETE FROM libreta WHERE id='$id'";
   $resultado=mysql_query($elimina, $link) or die (mysql_error());
}

?>
y esta mi interfaz flash
on (release) {
   estado = "Guardando datos...";
   if ((nombre.text != "") || (apellido.text != "") || (email.text != "") || (telefono.text != "")) {
      loadVariablesNum("http://localhost/libreta.php?salida=guardar&nombre="+nombre.text+"&apellido="+apellido.text+"&telefono="+telefono.text+"&email="+email.text, 0, "POST");
   } else {
      estado = "Llene todos los campos...";
   }
nombre.text="";
apellido.text="";
email.text="";
telefono.text="";
}
//fin del script


tengo tres botones donde guardo, muestro y elimino, este es el codigo para guardar
QUE TENGO MALLLL????
Necesito el amfphp obligatoriamente. Quien me explica??
Yo utilizo flash mx profesional 2004 y solo quiero probar desde mi servidor localhost.

Por fanfan

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Nov 2006 06:37 pm
mmm, oks si tienes algunbos errores , pero de implementacion.
Deja te preparo un code un poco mas adecuado y actualizado.
Esperame un ratillo.

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 06 Nov 2006 09:25 pm
Crea una nueva archivo.fla
pon esto en el primer frame

Código :


// Para cargar los datos desde el php, usaremos el objeto apropiado para ello
// Dicho objeto es LoadVars; ver referencia en la ayuda de flash.
//---------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------
// Borrar una fila
var delete_lv:LoadVars = new LoadVars();
function deleteDatos(id:Number):Void{
   delete_lv.id = id;
   delete_lv.action = "eliminar";
   delete_lv.sendAndLoad("libreta.php", delete_lv, "POST"); 
   delete_lv.onLoad = function(exito:Boolean):Void{
      if(exito){
         init(); //
         //mybox_txt.htmlText = "<item>Registro " + id + " ha sido borrado con exito</item>";
      }else{
         mybox_txt.htmlText = "<item>Error: el registro , no ha podido ser borrado</item>";
      }   
   }
}
//---------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------
//Cargar datos
var num_datos:Number = 0; //Numero de registros
var datos_lv:LoadVars = new LoadVars();
function loadDatos():Void{
   // Declaramos los datos que vamos a enviar
   datos_lv.action = "mostrar";
   //El sendAndLoad, enviara las variables, y recibira los datos
   // Enviamos los datos a libreta.php, mediante POST, el objeto destino es el mismo que el de envio :D
   datos_lv.sendAndLoad("libreta.php", datos_lv, "POST"); // 
   mybox_txt.htmlText = "<item>Cargando datos...</item>";
   datos_lv.onLoad = function(exito:Boolean):Void{
      if(exito){
         num_datos = Number(datos_lv.num_datos)
         if(num_datos>0){
            mybox_txt.htmlText = "<titulo>Se encontraron " + num_datos + " registros.</titulo><br>";
            for(var i=0; i<num_datos; i++){
               // Lo que hacemos es recibir el dato que nos envio el php 'datos_lv.id_str'
               // con split(","), lo que hacemos es convertirlo a un array
               // Dicho array lo puedes mostrar directamente, o almacenarlo
               // en este caso lo muestro directamente, pero pongo , como almacenarlo y tenerlo disponible
               //---------------------------------------------
               //id_array[i] = datos_lv.id_str.split(",")[i]; //Asi lo almaceno
               //---------------------------------------------
               mybox_txt.htmlText += "<item>Id: " + (i+1) + "&nbsp;&nbsp;&nbsp;&nbsp;";
               mybox_txt.htmlText += "<a href='asfunction:_root.deleteDatos," + Number(datos_lv.id_str.split(",")[i]) + "'>Borrar</a>&nbsp;&nbsp;&nbsp;&nbsp;";
               mybox_txt.htmlText += datos_lv.nombre_str.split(",")[i] + "&nbsp;&nbsp;&nbsp;&nbsp;";
               mybox_txt.htmlText += datos_lv.imagen_str.split(",")[i] + "</item>";
            }
         }else{
            mybox_txt.htmlText = "<item>No hay ningun dato por mostrar.</item>";
         }
      }else{
         mybox_txt.htmlText = "<item>Error, no se cargaron los datos</item>";
      }
   }
}
//---------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------
//Estilos css
var estilos:String = "";
estilos += "titulo{color:#333333; font-family: Verdana; font-size: 18px; textAlign:center; }";
estilos += "id_item{color:#003366; font-family: Verdana; font-size: 11px; fontWeight:bold; }";
estilos += "item{color:#003366; font-family: Verdana; font-size: 12px; textIndent:5; }";
estilos += "a:link{color:#990000; font-family: Verdana; font-size: 12px; textDecoration:underline; }";
estilos += "a:hover{color:#cccccc; font-family: Verdana; font-size: 12px; textDecoration:underline; }";
var mycss:TextField.StyleSheet = new TextField.StyleSheet(); // El objeto css
mycss.parseCSS(estilos);
function init():Void{
   // Creamos una caja de texto, para volcar los datos en ella
   _root.createTextField("mybox_txt", 2, 20, 20, 500, 200);
   with(_root.mybox_txt){
      border = true;
      multiline = true;
      html = true;
      styleSheet = mycss;
   }
   //---------------------------------------------------------------------------------------
   loadDatos(); //mandamos cargar los datos
   //---------------------------------------------------------------------------------------
}
//---------------------------------------------------------------------------------------
init(); // Inicializamos la pelicula




Y en el php

Código :

<?php //Poner el tag de apertura de script php, completo !!
//---------------------------------------------------------------------------------------
// Esto deberia de ir en un archivo externo y en una carpeta no publica
// Datos de conexion
$host = "localhost";
$user = "root";
$passw = "";
$database = "db_autonova";
$tabla = "tbl_wallpapers";
$link = mysql_connect($host, $user, $passw) or die ("No se contecto al Servidor debido a:" + mysql_error());
mysql_select_db($database) or die ("No se pudo seleccionar la base de Datos debido a:" + mysql_error());
//---------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------
$action = "";
// Accion que vamos a ejecutar, este dato viene desde flash
// Verificamos que los datos vengan de POST, y que la variable no venga vacia.
if($_POST["action"] && !empty($_POST["action"])){
   //Aqui van las validaciones de datos, para evitar inyecciones de codigo
   $action = $_POST["action"]; 
}
//---------------------------------------------------------------------------------------
// Vamos a mostrar los resultados, para ello meteremos cada tipo de dato en una cadena de texto diferente.
// Uniremos cada dato, mediante comas "," ; así en flash , leerlo como un array.
// Ponemos tantos arrays como datos queramos ver.
$id_str = "";
$nombre_str = "";
$imagen_str = "";
$num_datos = 0;
//---------------------------------------------------------------------------------------
if ($action == "mostrar"){
   $resultado = mysql_query("SELECT * FROM " . $tabla . " ORDER BY id");
   $num_datos = mysql_num_rows($resultado);
   while($columnas = mysql_fetch_array($resultado)){
      // Todas las cadenas contendran al final, una coma de mas.
      // Notese que ya no usamos los tags <font>, <u>, ya hay css y es más facil, pero desde flash
      $id_str .= $columnas['id'] . ","; 
      $nombre_str .= $columnas['nombre'] . ",";
      $imagen_str .= $columnas['imagen'] . ",";
   } // End while
   //Quitamos las comas sobrantes
   $id_str =  substr($id_str, 0, strlen($id_str)-1); 
   $nombre_str =  substr($nombre_str, 0, strlen($nombre_str)-1);
   $imagen_str =  substr($imagen_str, 0, strlen($imagen_str)-1);
   // Cuidado al "imprimir" los datos, no debe de haber espacios entre el nombre de variable y el signo "="
   //print "&variable=" . $variable;
   print "&num_datos=" . $num_datos;
   print "&id_str=" . $id_str;
   print "&nombre_str=" . $nombre_str;
   print "&imagen_str=" . $imagen_str;
   print "&"; // cerramos nuestra salida con un &
}
if($action == "eliminar"){
   if($_POST["id"] && !empty($_POST["id"])){
      $id_sel = $_POST["id"];  
   }
   $resultado = mysql_query("DELETE FROM " . $tabla . " WHERE `id`='" . $id_sel . "' LIMIT 1");
   if($resultado){
      print "&status=exito";
   }else{
      print "&status=error";
   }
}
mysql_close($link);
?>

pruebalo.
Para realizar las demas operaciones , como insertar datos o actualizar campos, solo sigue la lógia anterior.
Por ultimo, te recomiendo que te des una vuelta por la seccion e tutoriales y revises los de Loadvars
Tutorial de LoadVars 1
Tutorial de LoadVars 2
Como veraz cambie los campos. primero entiende la logica del codigo, y luego adaptalo a tus necesidades.
Saludo,s nos dices que paso ;)

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 07 Nov 2006 04:09 pm
Muchas gracias socito todo resuelto, es un script elegante, ya tengo también los tutoriales, muy buenos, gracias mil otra vez, ahora comienza verdaderamente mi incursión a bd desde flash.

Por fanfan

1 de clabLevel



Genero:Masculino  

firefox

 

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