Comunidad de diseño web y desarrollo en internet online

actualizar datos enviados desde mysql a flash con php?

Citar            
MensajeEscrito el 11 Oct 2005 09:30 pm
Tengo una pagina en flash con guestbook y noticias que se cargan desde una base mysql mediante sendandloadvars y php.
//cargamos noticias
lv=new LoadVars();
lv.load("load_news.php");
lv.onLoad=function(){
lv.news_loaded=news_loaded.htmlText;
var i=0;
var total=lv["entradas"];
last.text=total;
while(i<total){
news_loaded.htmlText+="<img src='new_pic'/>"+
"<br><b>"+lv["n"+i]+"</b><br>"+
"<br>"+lv["c"+i]+"<br>"+
"<img src='line_decor'/>"+
"<br><br>";
i++;

}}
Todo funciona perfectamente, las noticias se cargan al cargar la pagina. Pero no se actualizan. Me refiero que hay que cargar la pagina otra vez serrando y abriendo de nuevo explorador para que se cargan nuevos. Solo con dar actualizar no se actualizan.
El administrador tiene panel de control donde el mismo introduce las noticias, pero cuando los introduce no aparecen hasta que serramos y volvemos a abrir de nuevo explorer.
En fin yo quiero que los datos se actualizan cada sierto tiempo o al menos dando boton actualizar.
Gracias a todos por auyda.

Por skywalker

28 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 11 Oct 2005 09:41 pm

skywalker escribió:

cada sierto tiempo


Código :

intervalo = (actualizar = function (){ lv.load("load_news.php");}, numerodesegundos*1000);

skywalker escribió:

o al menos dando boton actualizar.


Código :

btnActualizar.onRelease = function(){
       lv.load("load_news.php");
}

saludos :)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 11 Oct 2005 10:02 pm
he entendido que hay que usar serInterval?
Cambiando de este modo
lv=new LoadVars();
setInterval(function (){lv.load("load_news.php");}, 1000);
lv.onLoad=function(){
lv.news_loaded=news_loaded.htmlText;
var i=0;
var total=lv["entradas"];
last.text=total;
while(i<total){
news_loaded.htmlText+="<img src='new_pic'/>"+
"<br><b>"+lv["n"+i]+"</b><br>"+
"<br>"+lv["c"+i]+"<br>"+
"<img src='line_decor'/>"+
"<br><br>";
i++;

}}
Me carga la misma noticia una y otra vez segida colgando el explorador alfinal, pero no carga si introduzco nuevas en la base de datos . Pero serrando y abriendo navegador si me las carga.
Y me referia dando el boton actualizar del navegador. no dentro de flash.
Gracias de todos modos.

Por skywalker

28 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 12 Oct 2005 12:07 am
mmm segura :? , a ver aqui te hice un pequeño ejemplo :P

codigo actionscript:

Código :

this.createTextField("texto",1,0,0,500,0);
texto.multiline = true;
texto.wordWrap = true;
texto.autoSize = true;
texto.border = true;

var miLV:LoadVars = new LoadVars();
intervalo = setInterval(actualizar = function (){ miLV.load("http://localhost/prueba/prueba.php");}, 1000);

miLV.onLoad = function (success:Boolean){
   if (success){
      texto.text="";
      for (i=0;this["resultado"+i]!=undefined;i++){
         texto.text+= this["resultado"+i]+"\n";
      }
   } else{
      trace("error");
   }
}


conexion.php

Código :

<?php
      function conectar (){
         if (!$link= mysql_connect("localhost","nombreusuario","contraseña")){
             echo "error en la conexion al servidor de base de datos";
             exit();
         }
         if (!$link=mysql_select_db("BasedeDatos",$link)){
             echo "error en la conexión a la base de datos";
             exit();
         }
         return $link;
      }   
?>

prueba.php

Código :

<?php
    include "conexion.php";
    $conex = conectar();
    $sql = "SELECT * FROM TABLA";
    $result = mysql_query($sql);
    $cadena=""; $i=0;
    while ($rows = mysql_fetch_array($result)){
          $cadena.="&resultado".$i."=".$rows['campo'];
         $i++;
    }
    echo "&cadena=".$cadena;
    
?>


Pruebalo con tus datos :wink:

saludos :)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 12 Oct 2005 10:50 am
Hola Maikel. Gracias por atender mi consulta tan rapido. He logrado que se actualizan las noticias con setInterval, pero ahora el problema esta que si carga datos nuevos desde mysql cada segundo colgando el explorador. Suponemos que tengo noticia1. Me carga noticia 1 cada segundo sin borrar . O sea que tengo 10 "noticias 1" repetidas seguidas en 10 segundos.
Y yo quiero que me carga datos desde mysql casa segundo si, pero que se actualiza en contenido de dinamic field y no anade con lo que tenia lo mismo mas lo nuevo cada segundo. No se si he explicado claro.

Por skywalker

28 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 12 Oct 2005 04:46 pm
Tienes que liberar la memoria de las consultas en php y borrar los textfields en flash... :wink:


A ver esta práctica sinceramente no me gusta mucho porque esta utilizando al servidor de manera innecesaria, imaginate si pasas una hora sin actualizar una noticia, cuantas "supuestas" actualizaciones se hacen 3600?¿ :crap:



saludos :)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 12 Oct 2005 09:00 pm
Estoy totalmente de acuerdo. No me gusta setInterval para nada. Y las noticias van a actualizarse cada mes aproximadamente.Pero yo pregunto como yo puedo desde php actualizar la pagina flash. Introduzco noticia y desde el mismo archivo php que introduce datos en la sql hace que la pagian se recarga. COn el boton de explorador "actualizar" no se actualiza. Es mi duda porque no actualizan los datos.
Suponemos que tengo www.mipagina.com/news.php donde hay campos parq introducir noticias. LAs rellenas pulsas boton introducir, los datos se introducen y que hacer para que se actualizan en flash?
Si acer $goURL="www.mipagina.com";

echo ('<html><head><META http-equiv="refresh" content="0; URL='.$goURL.'"></head></html>');
}
Los datos en este caso no se actualizan. Solo serrando y abriendo de nuevo exploradorl.

Por skywalker

28 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 13 Oct 2005 12:13 am
mas bien seria recargar los datos nuevamente,en flash claro esta ...pero probare, pues a mi tambien me serviria....

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

msie
Citar            
MensajeEscrito el 13 Oct 2005 10:43 am
wait a minute... me dices que la van actualizar cada mes :? , entonces no necesitas nada, a ver flash se ejecuta del lado del cliente es decir si el cliente ya cargo un swf no lo volvera a cargar con solo presionar F5 tiene que volver abrir el navegador o en su defecto si estas en Firefox Ctrl+F5 que vuelve recargar la pagina desde el principio.

En fin es totalmente normal que no se actualize solo con f5 :wink:


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 13 Oct 2005 10:43 am
La verdad estoy um poco quemada con el tema. Si en el archivo insert.php por ejemplo crear una variable que tiene que leer el flash para actualizarse (por ejemplo si el insert ha sido efectuado con exito , enviamos variable a flash echo("&resultado=".$ok); luego cuando flash lo recibe limpiamos textfield donde cargan los datos y cargamos nuevos.) Pero en ese caso tambien hay que usar setInterval para que flash vijila cambio en variable &resultado cosntantemente y otra vez estamos en la misma, cargando el servidor con el trabajo innesesario.

Por skywalker

28 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 13 Oct 2005 10:47 am
SI, Vale, esas noticias son ofertas de un hotel que actualizan una vez al mes mas o menos. Pero es cuestion de resolver la duda, ya que puede que nesesitare crear un foro en flash y nesesitare que la pagina se actualiza presionanado el boton actualizar del navegador.

Por skywalker

28 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 13 Oct 2005 10:51 am
a ver skywalker prueba mi codigo ponle un stop(); al final y quita la linea del setInterval y deja solo esto:

Código :

miLV.load("http://localhost/prueba/prueba.php");


y prueba con F5, te funcionara :P


saludos :)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 13 Oct 2005 02:30 pm
Perdona mi ignorancia pero no entiendo donde tengo que poner esta linea miLV.load("http://localhost/prueba/prueba.php");
El archivo php si me actualiza sin problemas, lo que no me actualiza es el flash.

Por skywalker

28 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 13 Oct 2005 02:44 pm
:? por que perdon, naa vale todos pasamos por eso :wink:, solo el código actionscript te debe quedar así:


this.createTextField("texto",1,0,0,500,0);
texto.multiline = true;
texto.wordWrap = true;
texto.autoSize = true;
texto.border = true;

var miLV:LoadVars = new LoadVars();
miLV.load("http://localhost/prueba/prueba.php");

miLV.onLoad = function (success:Boolean){
if (success){
texto.text="";
for (i=0;this["resultado"+i]!=undefined;i++){
texto.text+= this["resultado"+i]+"\n";
}
} else{
trace("error");
}
}



mientras más preguntes mejor, más respuestas tendrás y aprenderas más.

saludos :)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 15 Oct 2005 11:46 am
Gracias Maikel por tu auyda. Me he aclarado varias dudas pero el codigo que has puesto es igual que he puesto yo en primer mensaje. Quitando this.createTextField, porque ya tengo textfield en la pelicula. Aunasi lo puese a tu manera y no me actualiza precionando f5 o boton "actualizar" del navegador. La pagina flash se carga solamente cuando abres navegador, y despues al presionar f5 no hace nada. Ademas pesa unos 600 kb y tiene que aparecer cargador al actualizar y no aparece.
En fin, no se ni que hacer..

Por skywalker

28 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 15 Oct 2005 03:30 pm
:shock: 600Kb , es mucho para una web, y deberia ejecutarse el script de nuevo cuando le das a F5, ahora lo probaste con mi ejemplo o con el tuyo? , prueba con el mio si puedes


saludos :)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 15 Oct 2005 05:34 pm
SI, probe con el tuyo, y con el mio aunque por mi es lo mismo, pero escrito diferente. No se actualiza la web. Tambien tengo que decir que tengo 2 archivos swf. Uno main.swf que es solo contenedor cargador dentro de cual se carga mediante MovieClipLoader la pagina web hotel.swf y en esa ultima estan las noticias .
la pagina es
www.aparthotelcolumbus.info. por si quieres echar un vistazo. Es mi primer trabajo en flash y la verdad es que me pican las manos hacer para las noticias version html. Como no consigo actualizar datos en flash no veo otra solucion, pero como hay chats y foros en flash creo que debe haver la solucion.

Por skywalker

28 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 15 Oct 2005 09:15 pm
Sinceramente no entiendo porque no te funciona.

Podrias mostrar tu codigo php y el codigo actionscript que implica el loadvars ?

saludos :)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 15 Oct 2005 09:51 pm
ok listo, luego de una consulta (a Dano) y reflexiones por el MovieClipLoader, una de las soluciones es esta:

Por ejemplo con mi codigo seria:

Código :

miLV.load("http://localhost/prueba/prueba.php?dato="+new Date().getTime());


solo adaptalo al tuyo :wink:

algo asi:

Código :

lv.load("load_news.php?dato="+new Date().getTime());


saludos :)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 16 Oct 2005 02:25 pm
Gracias a Maikel! Uff por fin me funciona. Que felicidad, ahora puedo hacer foro en flash sin miedo. Te debo una. Esas palabras son magicas "dato="+new Date().getTime())". Lo unico, que no entiendo bien que es lo que hacen. Dato es una variable sin declarar y las funciones date y time son funciones que devolven data y tiempo. NO entiendo el funcionamiento, aunque funciona. Que es lo que hace exactamente este codigo?

Por skywalker

28 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 16 Oct 2005 04:46 pm
ok buena pregunta ^^ , fijate lo que hacemos es cargar un archivo php supuestamente único para se ejecute de nuevo, digo supuestamente porque a la final no usamos para nada dato, la razon de getTime es esa, que siempre que lo invoques te dara un numero de único y asi logramos que el script php que se ejecutara sea único y lo hacemos apoyandonos del metodo GET de php :P , si quieres pones en tu codigo php esto:

Código :

$fecha= $_GET["dato"];
echo "&dato"= $fecha;

y lo pruebas en el actionscript dentro lv.onLoad(con tu codigo) o miLV.onLoad(con el mio) con algo asi:

Código :

miLV.onLoad = function (exito:Boolean){
         if (exito) { trace (this.dato); } else{ trace("error")}
}


Pero un momento GET deberia modificar url, bueno load y sendAndLoad de LoadVars no modifica url, si quieres ver el valor de dato en la url como tipico GET haz esto:

Código :

miLV.send("http://localhost/prueba/prueba.php?dato="+new Date().getTime(), "_blank", "GET");


saludos :)

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 18 Oct 2005 08:44 am
Gracias Maikel por explicar. La verdad que es un truquillo muy bueno. Como soy novata en flash no me he ha pasado por la cabeza utilizar esas funciones. Estoy muy contenta , ya que ahora tengo manos desatadas para hacer otras cosas en flash que nesesitan actualizar la pagina con f5. La verdad chicos estais haciendo un trabajo estupendo con esa pagina? vamos sin igual. Un saludo desde Islas canarias.

Por skywalker

28 de clabLevel



Genero:Femenino  

opera
Citar            
MensajeEscrito el 12 Nov 2008 05:18 pm
yo tengo ese mismo problema, pero el problema (para variar) es EXPLORER,porque en Firefox me refresca los datos cada vez que se lo pido, es ilogico que me cacheen los datos de la db...
de paso.. si alguientiene una manera de limpiar el cache.. pero limpiarlo enserio...
proque aunque lo deshabilite o lo borre, siempre me toma de algun lado un archivo viejo, supongo que estaran guaraddos en un servidor de cache de mi compañia proveedora de internet y no se si puedo desabilitarlo.

Gracias

Por pixelismo

27 de clabLevel



Genero:Masculino  

Olivos, Buenos Aires

firefox
Citar            
MensajeEscrito el 13 Abr 2011 05:38 am
Yo tengo la respuesta!!!!
No se logra cargar el swf, porque el swf se cargar del lado del cliente. Que quiere decir esto:
Cuando nos conectamos la primera vez, el cliente solicita el archivo swf, y el server lo devuelve.
Pero cuando lo solicitamos por segunda vez, el cliente no vuelve a pedir el swf porque ya lo tiene almacenado en la memoria cache del navegador.

¿Como comprobamos esto?
Si ustedes borra la caché del navegador (Archivos Temporales), actualicen la página y verán que el swf aparece actualizado.

¿Cómo se soluciona esto?

PRIMERO>>>>>>>>>>>>(dentro del head del html)

<meta http-equiv="Expires" content="0">
<meta http-equiv="Last-Modified" content="0">
<meta http-equiv="Cache-Control" content="no-cache, mustrevalidate">
<meta http-equiv="Pragma" content="no-cache">

SEGUNDO>>>>>>>>>>>(en el object class...del swf)

<param name="movie" value="pronellofinalSP.swf?id=+random(1000)" />

TERCERO>>>>>>>>>>>(dentro del swf si es que llamas a swf externos, y si usas loadmovies)

mccontent.loadMovie("pdf4.swf?nocache="+Math.random());

Fuente: [url=http://foros.cristalab.com/cache-en-flash-t12676/][/url]

Por ritel

3 de clabLevel



Genero:Femenino  

firefox

 

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