Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Invio dati da php a flash

    Ciao a tutti sono nuovissimo, e vorrei -se possibile-
    chiedere aiuto per una questione di data base.

    Ho trovato mille e uno esempi che indicano come far inviare al flash
    dei dati al php ma niente per il contrario.:
    Ho costruito una tabella in mySql con tre campi nome, nick, mail

    sono riuscito a prendere questi dati con un file php tramite questo script:
    ------------------------------------------------------------------
    <?php
    $connessione=mysql_connect("localhost","*****","** ***");
    mysql_selectdb("dati",$connessione);

    $tutti=mysql_query("select * from contact", $connessione);
    while ($vars = mysql_fetch_array($tutti)){

    echo "&nome=".$vars["nome"];
    echo "&nick=".$vars["nick"];
    echo "&mail=".$vars["mail"];
    }
    ?>
    -------------------------------------------------------------------poi ho fatto leggere i dati al flash creando tre campi di testo e inserendo nel primo Keyframe questo codice:
    -------------------------------------------------------------------
    myVars = new LoadVars();
    myVars.load("http://localhost/pagina.php","GET");

    myVars.onLoad = function()
    {
    txt.text=myVars.nome;
    txt2.text=myVars.nick;
    txt3.text=myVars.mail;
    };
    -------------------------------------------------------------------
    Benissimo !!! visualizza il contenuto del database perfettamente,
    ma quando vado ad inserire nel database un altra riga, il flash mi legge solo quest'ultima !!
    maledizione, mi pareva facile...
    Voi che dite?

  2. #2
    E' chiaro che ti legge solo l'ultima, nel ciclo while le variabili nome nik e mail sono sempre le stasse, non variano ad ogni iterazione di ciclo, quindi vengono sovrascritte dall'ultimo valore. Dovresti fare in modo di dare un nome diverso, magari prograssivo, nome1,nome2,nome3.....
    Qiundi la cosa inizia a farsi un pò complicata, dovresti passare anche e flash il numero di record trovati e li ricostriure l'array.

  3. #3
    prova così:
    Codice PHP:
    <?php
    $connessione
    =mysql_connect("localhost","*****","*****");
    mysql_selectdb("dati",$connessione);
    $stringa "";
    $tutti=mysql_query("select * from contact"$connessione);
    while (
    $vars mysql_fetch_array($tutti)){
            
    $stringa .= $vars["nome"]."|".$vars["nick"]."|".$vars["mail"]."§";
    }
    echo 
    $stringa;
    ?>
    quindi all'interno di flash con la funzione split dividi i messaggi:

    codice:
    messaggio = new Array();
    messaggio = stringa.split("§");
    nome = new Array();
    nick = new Array();
    mail = new Array();
    app = new Array();
    for(i=0;i<messaggio.length;i++){
    	app = messaggio[i].split("|");
    	nome[i] = app[0];
    	nick[i] = app[1];
    	mail[i] = app[2];
    }
    delete app;
    delete messaggio;
    questo è un esempio.

    edit: questo codice ovviamente va richiamato una volta letto i dati con loadVars

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  4. #4
    Ti ringrazio del suggerimento Jack,
    sei stato molto gentile ad occuparti del mio "caso",
    ma non sò come metterlo in pratica, sia con il php che con
    l'ActionScript.
    Mi chiedo una cosa oltre tutto; chissà visto che uso flash mx 2004 pro se riesco a far capire l'inserimento di tutte le righe usando i component invece che un campo di testo?

    P.S. se qualcuno conosce l'indirizzo in rete di un .fla che fà al caso mio (con metodo loadVar e GET dal php) mi sarebbe di gran aiuto.

    Ciao e grazie !!

  5. #5
    Grazie Yassassins
    grazie mille, vado subito a provare il tutto.

    P.S. questo è il primo forum che uso, è una cosa meravigliosamente
    utile, e siete tutti molto gentili, cercherò per quanto mi è possibile, di contribuire anch'io sperando un giorno di essere d'aiuto a qualcuno!!

    ciao e grazie ancora

  6. #6
    Inanzitutto prendiil numerodi righe convolte dalla query con $num=mysql_num_rows(). Quindi il tuo codice diverrà questo
    Codice PHP:
    <?php 
    $connessione
    =mysql_connect("localhost","*****","*****"); 
    mysql_selectdb("dati",$connessione); 

    $tutti=mysql_query("select * from contact"$connessione); 
    $num=mysql_num_rows();
    $x=0;
    while (
    $vars mysql_fetch_array($tutti)){ 

    echo 
    "&nome".$x."=".$vars["nome"]; 
    echo 
    "&nick".$x."=".$vars["nick"]; 
    echo 
    "&mail".$x."=".$vars["mail"]; 
    $x++;

    echo 
    "&num=".$num;
    ?> 
    -------------------------------------------------------------------
    Ora le tue variabili saranno
    &nome1=valore
    &nik1=valore
    &mail1=valore
    &nome2=valore
    &nik2=valore
    .
    .
    .
    In flash invece fai così
    codice:
    myVars = new LoadVars(); 
    myVars.load("http://localhost/pagina.php","GET"); 
    
    myVars.onLoad = function() 
    { 
    for(j=0;j<myVars.num;j++){
    txt[j].text=myVars.nome[j]; 
    txt[j].text=myVars.nick[j]; 
    txt[j].text=myVars.mail[j];
    } 
    };
    Premetto che non l'ho provato quindi non so dirti se funziona correttamente, sicuramente ci sarà da dare una sistematina. Prova a mettere nel ciclo trace(myVars.nome[j]) e vedi cosa ti restituisce
    Fammi sapere

  7. #7
    usa la serializzazione dei dati da PHP e poi questa classe flash per la deserializzazione:
    http://www.sephiroth.it/test/unserializer/index.php
    Free ActionScript Editor

    Y en silencio y sin cruzar una palabra
    solamente una mirada es suficiente para hablar

  8. #8
    C'era solo un'errore nel php :
    $tutti=mysql_query("select * from contact", $connessione);
    $num=mysql_num_rows($tutti );
    $x=0;
    while ($vars = mysql_fetch_array($tutti)){

    echo "&nome".$x."=".$vars["nome"];
    echo "&nik".$x."=".$vars["nik"];
    echo "&mail".$x."=".$vars["mail"];
    $x++;
    }
    echo "&num=".$num;
    ?>
    il comando mysql_num_rows vuole sapere che tabella prendere,
    ma risolto questo il tuo script è una bomba! ora nell'output in html
    mi ha messo tutti i dati numerati come dicevi tu,
    adesso è il flash che con il comando trace ecc.. non mi visualizza nulla ci stò lavorando comunque la tua idea mi sembra buona
    e soprattutto concisa, semplice, che è la cosa più importante per me perchè devo comprendere il lavoro che faccio, grazie Jeck!

  9. #9
    Grazie. scusami per l'errore, ma nella fretta di scrivere può succere di dimenticari qualcosa. Prova questo se non va
    codice:
    for(j=0;j<this["num"];j++){
    .
    .
    una volta ho risolto così

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.