Vai al contenuto

Inserire dati Flash su Database Mysql

Questo sistema è utile per inviare informazioni riservate direttamente nel Database Mysql. Utilizzeremo per tale necessità il Php, essendo anche il linguaggio più diffuso. Il tutorial in questione può essere preso in considerazione sia da principianti che da esperti.

comunicazione flash database


Per iniziare realizziamo un Form in Flash con i seguenti campi di input:

invia dati

Dopodichè ad ogni campo testuale diamo un nome “ Variabile “ che sarà uguale a quelli citati sull’immagine cioè : “ Nome , Cognome ecc.. “ .
Nel primo frame inseriamo questo ActionScript :

System.useCodepage = true;
stop();

Ora ci serve creare una tabella all’interno del Database . La tabella avrà il seguente nome “ utenti “. Per gli sviluppatori che utilizzano MySql sarà di facile comprensione , mentre per coloro che sono alle prime armi , scrivo qui di seguito la query da inviare affinché la tabella venga sviluppata correttamente :

CREATE TABLE 'utenti' (
'nome' varchar(50) NOT NULL,
'cognome' varchar(50) NOT NULL,
'indirizzo' varchar(50) NOT NULL,
'cap' varchar(5) NOT NULL,
'citta' varchar(50) NOT NULL,
'telefono' varchar(10) NOT NULL,
'email' varchar(50) NOT NULL,
'data' datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

La tabella dovrà avere gli stessi parametri come da immagine :

tabella mysql

Ok ora create la nostra tabella scrivo il codice ActionScript da Applicare al pulsante Invio:

// codice che associamo al pulsante
on (release){
// creiamo i due oggetti loadVars
carica = new LoadVars();
ricevi = new LoadVars();
// inseriamo le variabili nell'oggetto
carica.nome = _level0.nome;
carica.cognome = _level0.cognome;
carica.indirizzo = _level0.indirizzo;
carica.cap = _level0.cap;
carica.citta = _level0.citta;
carica.telefono = _level0.telefono;
carica.email = _level0.email;
// funzione onload: si attiva al
// completmanento del caricamento dello script
ricevi.onLoad = function (ok){
// elimina onLoad
delete this.onLoad;
// controlla che il caricamento abbia avuto
// successo
if(ok)
{
// controlla che l'inserimento abbia avuto
// successo
if(ricevi.error == "1"){_root.output.text = "Errore inserimento dati";}
else{_root.play();}
}
// l'inserimento non ha avuto successo,
// viene segnalato l'errore
else
{
_root.output.text = "Errore inserimento dati";
}
};
// carichiamo lo script PHP
carica.sendAndLoad("script.php", ricevi, "POST");
}

Molto semplice ed Intuitivo a quanto potete vedere . Dopodichè Creiamo con il nostro NotePad lo script in php che chiameremo “ script.php “ .

// Dati per la connessione al DB
$db_host = "localhost o host del vostro database";
$db_user = "username database";
$db_password = "password database";
$db_name = "vostro database";
// Connessione al DB
$db = mysql_connect($db_host, $db_user, $db_password);
$db_forum = mysql_select_db($db_name, $db);
// Query di inserimento
$query = "INSERT INTO `utenti` (nome, cognome, indirizzo, cap, citta, telefono, email, data)
VALUES ('".$_POST['nome']."', '".$_POST['cognome']."', '".$_POST['indirizzo']."', '".$_POST['cap']."', '".$_POST['citta']."', '".$_POST['telefono']."', '".$_POST['email']."', '".date('Y-m-d H:i:s')."')";
// Esecuzione query
$query_results = mysql_query($query) or die("&error=1");
echo "&stop=1";
?>

Ovviamente vi ricordo che i file devono essere tutti all’interno della stessa cartella , nella speranza che questo Tutorial vi sia stato di aiuto vi invito a restare sempre aggiornati su DesMM.com.
Buona Programmazione

39 commenti su “Inserire dati Flash su Database Mysql”

  1. “Testa per bene il tutorial i dati vengono inviati”

    no testalo bene tu prima di scriverlo:

    carica.sendAndLoad(“script.php”, receiver, “POST”);

    receiver non viene mai istanziata, semmai ricevi.

    ciao 🙂

  2. Ciao ho corretto la riga in:
    carica.sendAndLoad(“script.php”, ricevi, “POST”);

    Come mi ha suggerito Virpel ho messi “ricevi”
    ciao

  3. salve, sto tentando di creare un database per un sito web che devo realizzare ma quando in mysql vado a costruire il database come sopra descritto mi dice che c’è un errore e questo errore non mi fa costriure il database perchè mi accade questo? vorrei che qualcuno mi risolvesse questo mistero

  4. Mi spiace , ma si vede che la versione del database che hai è differente da quello che io ho postato ti invito a postare la versione del database mysql che hai per fare in modo di aiutarti . Buona Notte

  5. HO RISOLTO IL PROBLEMA SCABIAVO LE PARENTESI TONDE PER GRAFFE E NON METTEVO LA PRIMARY KEY E IN PIU’ MANCAVA UNA VIRGOLA DOPO NOT NULL HO CORRETTO TUTTO E LA TABELLELLA MI ESCE COSI:
    mysql> CREATE TABLE UTENTI (
    -> id int(11) NOT NULL primary key,
    -> nome varchar(20) NOT NULL,
    -> cognome varchar(20) NOT NULL,
    -> indirizzo varchar(20) NOT NULL,
    -> cap varchar(5) NOT NULL,
    -> citta varchar(20) NOT NULL,
    -> telefono varchar(15) NOT NULL,
    -> email varchar(50) NOT NULL,
    -> data datetime NOT NULL);
    Query OK, 0 rows affected (1.69 sec)
    mysql> DESCRIBE UTENTI;
    +———–+————-+——+—–+———+——-+
    | Field | Type | Null | Key | Default | Extra |
    +———–+————-+——+—–+———+——-+
    | id | int(11) | NO | PRI | | |
    | nome | varchar(20) | NO | | | |
    | cognome | varchar(20) | NO | | | |
    | indirizzo | varchar(20) | NO | | | |
    | cap | varchar(5) | NO | | | |
    | citta | varchar(20) | NO | | | |
    | telefono | varchar(15) | NO | | | |
    | email | varchar(50) | NO | | | |
    | data | datetime | NO | | | |
    +———–+————-+——+—–+———+——-+
    9 rows in set (0.17 sec)
    VOLEVO CHIEDERTI SE IL CAMPO DEFAULT HA LA STESSA FUNZIONE DELL’AUTOINCREMENT.
    GRAZIE IN ANTICIPO

  6. Vorrei sapere se è possibile avere un tutorial per fare l’inverso, ovvero leggere i dati da un database e visualizzarli in flash con dei movieClip divisi per record…

    La connessione la so fare, prendo i dati con flash dall’echo finale….

    Ma non riesco a dire a flash come creare un MovieClip per ogni record ed inserirci il testo preso dal record..
    Qualcuno lo sa fare o sa un tutorial da dove sbirciare?

    Grazie.

  7. mh a me da un errore:
    Description:
    The identifier ‘loadVars’ will not resolve to built-in object ‘LoadVars’ at runtime.

    Source:
    carica = new loadVars();

    se qualcuno mi sa aiutare lo ringrazio in anticipo ;P

    ciaoz

  8. mi dà questi errori in output o.0

    Target non trovato: Target=”undefined” Base=”_level0″
    Target non trovato: Target=”undefined” Base=”_level0″

    grazie se qualcuno mi aiuterà 🙂

  9. in effetti mi è parso che sia stato pubblicato senza nemmeno essere testato, LoadVars si scrive con la maiuscola quindi non poteva funzionare… ma anche corretto questo errore non va, alla premuta del bottone aspetta un po ma quando la barra di stato del browser (firefox:è questo il problema?) mi dice “completato” vado a vedere sul db e non c’è scritto niente…
    sono desolato, sto cercando da settimane e in internet non c’è UN SOLO tutorial funzionante…

  10. ciao, vedo che tutti hanno dei problemi ma non si risolvono. Ho, infatti, copiato tutto il tutorial, analizzato punto per punto, seguito tutti i problemi postati ma il risultato è, cliccando su invia dati non accade assolutamente NULLA. Qual’ è realmente il problema ?
    Come mai Virpel dice che i dati vengono inviati ?
    Inoltre questo è lo stesso identico tutorial presente su webmasterpoint.it con la sola differenza dei comandi da inserire nel primo frame (quì ci sono, su webmaster no). Non vorrei che come dice Simone abbiate rinunciato……

  11. Per Prima cosa , le sarei grato di non scrivere altri siti di riferimento , Dopodichè la sua affermazione può sembrare di accusa e mi sta catalogando come un ” falso ” che copia da siti altrui i tutorial , quando tranquillamente puo essere successo viceversa ( quindi senza mettere zizzanie in mezzo siete pregati di postare i problemi e basta ) . Controllerà il tutorial nuovamente sperando di trovare i problemi da voi riscontrati e vi auguro Buona giornata , Spero che riuscirò ad esservi di aiuto . Nel momento in cui risolverò il problema , vi informerò tramite commento .

  12. Abbiamo Aggiusto il Tutorial ” Inseire Dati Flash Su Database MySql . Ci scusiamo per l’inconveniente restiamo a vostra disposizione , Se avete problemi non esitate a contattarci . Buona Giornata

  13. Grazie per aver aggiornato il tutorial ma :
    1) nella creazione della tabella, utilizzando i comandi MySQL si ottiene il seguene errore ——-
    Messaggio di MySQL:

    #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ”utenti’ (
    ‘nome’ varchar(50) NOT NULL,
    ‘cognome’ varchar(50) NOT NULL,
    ‘indi’ at line 1

    Ho creato la tabella manualmente campo per campo come da schema.

    2) Il codice PhP manca dell’ apertura “<?” e l’ ho corretto manualmente

    3) Ho inserito i codici di flash sia sul primo frame che sul pulsante

    Chiaramente ho corretto lo script.php inserendo i dati del mio server/database

    Risultato
    ======
    i campi nella maschera vengono azzerati ma non viene inviato/registrato alcun dato.

  14. Hai ragione pe lo script php , comunque posteremo il prima possibile dei file sorgenti in modo che facciamo contenti tutti , per uanto riguarda mysql non ti saprei dire , sono comani che funnzionano con il MySql 5.0 . In flash hai fatto bene , i file devono stare nella stessa cartella , e devono essere testati in remoto per avere un risultato .

  15. Dopo tantissimi tentativi sono riuscito a far arrivare i dati al database ma quello che viene trascritto nei campi sono i nomi delle variabili flash infatti al posto del nome c’è _level0.nome, al posto del cognome _level0.cognome e così via per tutte le variabili solo la data è corretta in quanto non viene passata come variabile ma presa direttamente dal sistema. C’è qualcosa tra l’ action script e lo script PhP che non funziona

  16. Forse hai sbagliato solo a mettere il nome ai campi di input nel flash . Se vedi nelle proprietà c’è ” Nome istanza ” e “variabile ” lo si deve inseire in variabile il nome del campo tipo ” nome , cognome , indirizzo ” se no è ovvio che ti invia level0.nome ecc.. spero di essere stato chiaro .

  17. Ciao ho provveduto a verificare i nomi dei campi, delle istanze e delle variabili e sia con il nome istanza+nome variabile sia con il solo nome variabile nei campi viene inserito <FONT FA a parte nella data il cui valore è corretto.
    Come vedi c’è sempre qualcosa che non funziona. Un primo passo è stato quello di raggiungere il DB pian piano forse si riuscirà a fargli scrivere il contenuto corretto.

  18. Purtroppo il messaggio viene modificato all’ atto dell’ invio tolgo le “” e le sostituisco con “-” altrimenti non arriva completo
    – “TEXTFORMAT LEADING=”2″- -P ALIGN=”CENTER”–FONT FA

  19. Scusa ancora ma, avevo dimenticato di dirti che all’ avvio del swf nei campi compaiono i nomi e cioè _level0.nomecampo è normale?

  20. Allora Maurizio io ti voglio dare una mano , ma mi devi seguire , mettendo anche al nome istanza un valore è normale succeda ciò . Devi inserire il nome del campo sono nella variabile e vedi che non apparirà leve0.nome . Per il resto non so come esserti di aiuto . Appena posso caricherò dei file di esempio.

  21. Ti ringrazio per la disponibilità e, ho riprovato ancora una volta con le sole variabili senza instanziare nulla ma il risultato è lo stesso e cioè
    il contenuto dei campi salvo la data è il seguente:
    – “TEXTFORMAT LEADING=â€?2″- -P ALIGN=â€?CENTERâ€?–FONT FA
    i campi all’ avvio sono vuoti.

    grazie

  22. mi da errore l’ultimo else del pulsante inviadati!!!!

    ‘else’ encountered without matching ‘if’

    e poi il release non è chiuso!!! cosa devo fare? grazie

  23. Ciao Virpel, dopo tutti questi commenti negativi vorrei darti una buona notizia. Il tuo tutorial è perfetto e mi è stato di grande aiuto. Vorrei darti solo un consiglio: inserisci nel movie di flash un pulsante che cancelli i dati inseriti nel modulo oppure fai in modo che gli stessi spariscano dopo l’inserimento. Quindi grazie, soprattutto perchè dai la possibilità a noi piccoli praticanti di costruire siti di una certa complessità.

  24. Ringrazio le persone come Margherita che seguono bene e leggono soprattutto bene i tutorial affinche questi riescano ad essere eseguiti correttamente .

    A tutti coloro che hanno problemi , vi ricordo che il Tutorial è una Guida per imparare l’utilizzo di alcune applicazioni , che senza la pazienza e una minimo di pratica tornano ad essere inutili .

    Un consiglio : ” Leggete con attenzione ” .

  25. Ciao Virpel, vorrei realizzare una tabella in flash attraverso la quale modificare i dati di un database mysql, cioè sostiutuendo quelli già esistenti con nuovi dati. É possibile realizzare tutto ciò?

  26. si , con flash puoi realizzare quello che vuoi con l’aiuto di linguaggi server side come php , quindi flash conta ben poco in questi casi , il lavoro lo fanno gli script esterni flash preleva solo le informazioni da questi.

    buona giornata.

  27. Infatti è proprio quello che sto facendo: realizzare una tabella in php che prelevi i dati di mysql. Il problema è se si può relizzare in flash una interfaccia utente che modifichi (SOSTIUTUENDOLI) i dati già inseriti nel database. Fino a ora sono solo riuscita a visualizzarli in flash, ma nn sostituirli.
    Ciao

  28. Ciao Virpel, nn vorrei sembrarti insistente ma ho visto alcuni siti in flash modifibabili attraverso una interfaccia utente (possibilità di sostituire immagini e testi). Secondo te utilizzano flash collegato ovv.te a php oppure utilizzano direttamente php? Quello che voglio sapere è se un modulo in flash possa visualizzare i dati prelevati dal database, in maniera da poterli poi sostiutire. Grazie per il tuo prezioso aiuto. Ciao

  29. Una domanda, nel codice AS c’è questa riga:

    carica.email = _level0.email;

    il _level0 a cosa serve?

    creando la tabella del db manualmente non vedo come se possa inserire il parametro deafault, è necessario? come posso impostarlo manualmente da mysql?

    grazie

  30. Ciao Virpel.

    Ho provato il tuo tutorial, ma non mi funziona.
    Quando vado a vedere i dati inviati, mi dà come risultato nei campi :
    level0.nome , level0.indirizzo … ecc .. e non mi fà vedere il testo che ho immesso, infatti nel database arriva sempre la stessa quantità di dati qualunque cosa io ci scriva…
    Puoi aiutarmi ?
    Grazie in anticipo.
    Ciao.

  31. Ho risolto !!
    Ho messo nella riga:
    loader.titolo = _root.titolo.text
    loader.testo = _root.testo.text

    però ho un altro problem,. come posso fare a cancellare i dati vecchi ogni volta che li riaggiorno ?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.