Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Recuperare dati da mySQL con Flash CS3

This is a discussion on Recuperare dati da mySQL con Flash CS3 within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Abbiamo visto come inserire dei dati di un utente in un DataBase con Flash CS3. In quel caso, avevamo una ...


Go Back   Forum Flash CS3 Flash CS4 > Flash CS3 e Actionscript 3.0 > Articoli e tutorials

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  2 links from elsewhere to this Post. Click to view. #1 (permalink)  
Old 02-09-08, 05:36
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Recuperare dati da mySQL con Flash CS3

Abbiamo visto come inserire dei dati di un utente in un DataBase con Flash CS3.
In quel caso, avevamo una form in Flash che inviava i dati dell' utente ad uno script PHP che a sua volta li inseriva nel DataBase mySQL.

Adesso vediamo come recuperare questi dati.
Come ho già detto, Flash e mySQL non possono comunicare direttamente e quindi anche in questo caso dobbiamo avvalerci di uno script lato server ( PHP ).
Inoltre ci serve che l' output per Flash dal PHP sia in formato XML.
Quindi per prima cosa dobbiamo creare un file PHP che esegue la Query al DataBase e restituisce un output XML a Flash.

Solo a questo punto possiamo visualizzare i dati con Flash in modi e forme che più ci piaciono.
In questo caso utilizzo un componente DataGrid.

Questo tutorial si appoggia sullo stesso DataBase e tabella "clients" utilizzato nel tutorial inserire dei dati di un utente in un DataBase con Flash CS3.
Creo un file PHP che recupera i dati della tabella "clients" e spara fuori un output in formato XML:
PHP Code:
<?php
    
/*
 *************************************
  Retrieve data from DataBase with Flash CS3                 
  http://www.flepstudio.org     
  Author: Filippo Lughi          
  version 1.0                                
 *************************************
 */
 /******** CHANGE YOUR DATABASE SETTING *******/
    
$dbhost 'localhost'// database host ( usually localhost )
    
$dbuser 'root'// database username
    
$dbpass 'root'// database password
    
$dbname 'dbname'// database name
    
$mysql mysql_connect($dbhost,$dbuser,$dbpass);
    
mysql_select_db($dbname);
    
    
$Query="SELECT * from clients";
    
$Result=mysql_query$Query );
    
$Return="<?xml version=".'"1.0"'." encoding=".'"UTF-8"?>'."\n"."<clients>";
    
    while(
$client=mysql_fetch_object($Result))
    {
     
$Return.="<client><id><![CDATA[".$client->ID."]]></id><name><![CDATA[".$client->name."]]></name><surname><![CDATA[".$client->surname."]]></surname><address><![CDATA[".$client->address."]]></address><city><![CDATA[".$client->city."]]></city><state><![CDATA[".$client->state."]]></state><email><![CDATA[".$client->email."]]></email></client>"
    }
    
$Return.="</clients>";
    
mysql_free_result($Result);
    echo (
$Return);
?>
Una volta chiamato lo script, ecco l' output che genera:
HTML Code:
<?xml version="1.0" encoding="UTF-8"?>
<clients>
	<client>
		<id>1</id>
		<name>filippo</name>
		<surname>lughi</surname>
		<address>piazza fiorentini 17</address>
		<city>cesenatico</city>
		<state>italy</state>
		<email>info@flepstudio.org</email>
	</client>
	<client>
		<id>2</id>
		<name>paolo</name>
		<surname>rossi</surname>
		<address>via verdi</address>
		<city>milano</city>
		<state>italy</state>
		<email>wewew@fddf.com</email></client>
	<client>
		<id>3</id>
		<name>giacomo</name>
		<surname>leopardi</surname>
		<address>via marrone</address>
		<city>roma</city>
		<state>italy</state>
		<email>qwqwqw@gfgfgf.com</email>
	</client>
	<client>
		<id>4</id>
		<name>antonio</name>
		<surname>gialli</surname>
		<address>via viola</address>
		<city>napoli</city>
		<state>italy</state>
		<email>hgfgfd@gfdf.com</email>
	</client>
	<client>
		<id>5</id>
		<name>andrea</name>
		<surname>viola</surname>
		<address>piazza la bomba e scappa</address>
		<city>torino</city>
		<state>italy</state>
		<email>wewewe@dfdfdf.com</email>
	</client>
	<client>
		<id>6</id>
		<name>paolo</name>
		<surname>de paoli</surname>
		<address>via paolino</address>
		<city>paolopoli</city>
		<state>italy</state>
		<email>sdsdsd@fdfdfd.com</email>
	</client>
	<client>
		<id>7</id>
		<name>alessandro</name>
		<surname>magno</surname>
		<address>via da roma</address>
		<city>roma</city>
		<state>italy</state>
		<email>qqwqw@fgfgfg.com</email>
	</client>
	<client>
		<id>8</id>
		<name>briana</name>
		<surname>banks</surname>
		<address>via del padulo</address>
		<city>genova</city>
		<state>italy</state>
		<email>scscssc@ghghggh.com</email>
	</client>
	<client>
		<id>9</id>
		<name>ruggero</name>
		<surname>ruggeri</surname>
		<address>via del rug</address>
		<city>ragusa</city>
		<state>italy</state>
		<email>qwqqw@fdfdfd.com</email>
	</client>
</clients>
Adesso mi creo un FLA che contiene un componente DataGrid sullo stage con nome istanza "my_dg".







Creo la Document Class, Main.as:
Code:
package
{
	import flash.display.*;
	import flash.events.*;
	import flash.net.*;
	import flash.xml.*;
	import fl.controls.ScrollPolicy;
	
	public class Main extends MovieClip
	{
		private var clients_array:Array=new Array();
		private var titles_array:Array;
		
		public function Main()
		{
			addEventListener(Event.ADDED_TO_STAGE,init);
		}
		
		private function init(evt:Event):void
		{
			removeEventListener(Event.ADDED_TO_STAGE,init);
			
			titles_array=new Array('id','name','surname','address','city','state','email');
			
			loadXML();
		}
		
		private function loadXML():void
		{
			var loader:URLLoader=new URLLoader();
			loader.addEventListener(Event.COMPLETE,completeHandler);
			
			var request:URLRequest=new URLRequest('http://www.flepstudio.org/swf/ImmagazzinareDati/recuperare/getData.php');
			try 
			{
				loader.load(request);
			} 
			catch(error:Error) 
			{
				trace('Impossibile caricare il documento.');
			}
		}
		
		private function completeHandler(event:Event):void
		{
			var result:XML=new XML(event.target.data);
			var myXML:XMLDocument=new XMLDocument();
			myXML.ignoreWhite=true;
			myXML.parseXML(result.toXMLString());
			var node:XMLNode=myXML.firstChild;
			var n:int=node.childNodes.length;
			for(var i:int=0;i < n;i++)
			{
				var obj:Object=new Object();
				
				for(var j:int=0;j < node.childNodes[i].childNodes.length;j++)
				{
					if(j==0)
						obj.id=int(node.childNodes[i].childNodes[j].firstChild.nodeValue);
					if(j==1)
						obj.name=node.childNodes[i].childNodes[j].firstChild.nodeValue;
					if(j==2)
						obj.surname=node.childNodes[i].childNodes[j].firstChild.nodeValue;
					if(j==3)
						obj.address=node.childNodes[i].childNodes[j].firstChild.nodeValue;
					if(j==4)
						obj.city=node.childNodes[i].childNodes[j].firstChild.nodeValue;
					if(j==5)
						obj.state=node.childNodes[i].childNodes[j].firstChild.nodeValue;
					if(j==6)
						obj.email=node.childNodes[i].childNodes[j].firstChild.nodeValue;
				}
				clients_array.push(obj);
			}
			
			populateDataGrid();
		}
		
		private function populateDataGrid():void
		{
			my_dg.rowCount=5;
			my_dg.columns=titles_array;
			my_dg.verticalScrollPolicy=ScrollPolicy.ON;
			for(var i:int=0;i < clients_array.length;i++)
			{
				my_dg.addItem(clients_array[i]);
			}
		}
	}
}
Abbiamo 3 funzioni:
loadXML che chiama il PHP ( output in formato XML ).
completeHandler che parsa l' output XML del PHP ed inserisce i dati in un Array.
populateDataGrid che riempie il DataGrid con i dati appunto recuperati dal DataBase tramite il PHP.

Allego i files:
Attached Files
File Type: zip retrieve_data.zip (645.2 KB, 138 views)

__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !

Last edited by Flep; 23-11-08 at 16:38..
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #2 (permalink)  
Old 12-09-08, 16:57
Member
 
Join Date: Feb 2008
Location: Modena
Posts: 83
Rep Power: 1
bulga is on a distinguished road
Question Re: Recuperare dati da mySQL con Flash CS3

Grazie flep del tutorial ma a me non funziona volevo sapere se qualcun'altro ha riscontrato qualche problema.

L'errore che mi ritorna è il seguente:
Code:
TypeError: Error #1088: Il codice nel documento successivo all'elemento principale deve essere formato correttamente.
Il file li ho caricati e non sono stati modificati se non per indicare l'accesso al database e l'indirizzo dei file .php
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #3 (permalink)  
Old 13-09-08, 16:45
Member
 
Join Date: Feb 2008
Location: Modena
Posts: 83
Rep Power: 1
bulga is on a distinguished road
Re: Recuperare dati da mySQL con Flash CS3

Ho ricreato il file php con qualche modifica e adesso funziona, se qualcuno riscontrasse lo stesso problema a creare l'xml dal database mi faccia sapere.

Ciao
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #4 (permalink)  
Old 23-11-08, 16:13
Junior Member
 
Join Date: Nov 2008
Posts: 6
Rep Power: 0
ossidiana is on a distinguished road
Re: Recuperare dati da mySQL con Flash CS3

Anche a me non funziona.
se qualcuno ha il file php corretto, e' possibile averlo.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #5 (permalink)  
Old 23-11-08, 16:25
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: Recuperare dati da mySQL con Flash CS3

A me funziona correttamente
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Flash Multi Gallery
  #6 (permalink)  
Old 23-11-08, 16:40
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: Recuperare dati da mySQL con Flash CS3

Comunque c' era un problema.
Hoo aggiunto il CDATA così anche se inseriscono i caratteri del tipo "<" l' XML viene comunque scritto correttamente.
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #7 (permalink)  
Old 23-11-08, 17:01
Junior Member
 
Join Date: Nov 2008
Posts: 6
Rep Power: 0
ossidiana is on a distinguished road
Re: Recuperare dati da mySQL con Flash CS3

Trovato il mio errore . funziona finalmente.
Scusa se ho dubitato del tuo file...
Ciao e grazie
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads

Thread Thread Starter Forum Replies Last Post
Inserire dati nel DataBase da Flash CS3 Flep Articoli e tutorials 1 14-10-08 18:23
Recuperare dati esterni ciclicamente Kahran Actionscript 3.0 base 2 23-01-08 12:04
How to get image from MYSQL into Flash hard_overclocker PHP | mySQL | Flash CS3 7 22-01-08 06:41
Flash CS3, interazione con PHP MySql Mattia86 Flash CS3 | PHP | mySQL 15 25-11-07 14:09
GuestBook in Flash CS3 - PHP - mySQL e XML Vlizzard AIUTO utilità free 1 25-09-07 18:48


All times are GMT. The time now is 13:03.


Powered by vBulletin versione 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 RC4
Forum SiteMap


FlepStudio
by Filippo Lughi
P.IVA 03605860406