• User Newbie

    flash>php>sql come velocizzare???

    Ciao esperti...
    ho un problema...da appassionato del web ho creato un sito in flash che richiama dei dati su un sql via php...il mio problema è che ci mette circa un minuto a darmi la risposta.

    Esempio:
    SQL: 1 tabella con 4 campi: sectionID(autoincrementante), sectionTitle, sectionText, sectionImage.

    Php di richiamo:
    [php]<?

    include("includes/common.php");

    $db = mysql_connect($db_host, $db_user, $db_password);

    mysql_select_db($db_name, $db);

    $theRow=$_POST['row'];

    $query="SELECT * FROM regali WHERE sectionID=$theRow";

    $result=mysql_query($query);

    $row=mysql_fetch_array($result);

    $theText=$row['sectionText'];

    $theImage=$row['sectionImage'];

    echo "&theText=$theText&theImage=$theImage";

    ?>[/php]


    La mia pagina flash di test ha un bottone per richiamare il tutto, un box di testo istanziato come data_txt e un clip vuoto chiamato imageHolder_mc

    Questo è l'actionScript della mia pagina flash chiamante:

    
    myLoadVars = new LoadVars();
    myLoadVars.onLoad = function(ok) {
        if (ok) {
            data_txt.text = this.theText;
            imageHolder_mc.loadMovie('images/'+this.theImage);
            
            
        } else {
            data_txt.text = 'Error';
        }
    };
    function loadData(sectionID) {
        myLoadVars.row = sectionID;
        myLoadVars.sendAndLoad("returnData.php",myLoadVars,'POST');
    }
    
    home_btn.onRelease = function() {
        loadData(1);
    }
    
    

    AIUTATEMI, IL DATABASE MI FA COMPARIRE L'IMMAGINE CHE PESA 80KB E IL TESTO IN 20 SECONDI CRONOMETRATI...SONO UN TANTINO TTTRRRROOOOPPPIIIII

    NON CAPISCO SE HO SBAGLIATO IO A CONFIGURARE QUALCOSA...O SE è PROPRIO COSI LA VELOCITA' DI RISPOSTA IN SQL....HELP:x


  • ModSenior

    Ciao ilviolatore,

    Tanto per cominciare il codice php, puoi sostituirlo con questo:
    [php]
    <?

    include("includes/common.php");

    $db = mysql_connect($db_host, $db_user, $db_password);

    mysql_select_db($db_name, $db);

    $theRow=$_POST['row'];

    $query="SELECT * FROM regali WHERE sectionID='$theRow' LIMIT 1";

    $result=mysql_query($query);

    $row=mysql_fetch_array($result);

    $theText=$row['sectionText'];

    $theImage=$row['sectionImage'];

    echo "&theText=$theText&theImage=$theImage";

    ?>
    [/php]
    In ogni caso per sapere perchè impiega cosi tanto tempo a generarsi, dovresti stamparti il tempo necessario per la generazione dell'esecuzione della query (Dal phpmyadmin effettuando la query te lo dice quanto impiega, il resto del codice non dovrebbe richiedere molto in questo caso).


  • User Newbie

    Scusa la mia ignoranza, come faccio a vedere il tempo in sql-->io sono appoggiato a un server che mi ha attivato l'sql e mi ha fornito un pannellino dove posso solo inserire le tabelle...consultingweb non so se conosci?


  • ModSenior

    Allora puoi fare cosi per sapere quanto impiega:
    [php]<?
    function Tempo()
    {
    $tempo = microtime();
    $tempo = explode(' ', $tempo);
    $tempo[0] = floatval($tempo[0]);
    $tempo[1] = floatval($tempo[1]);
    return ($tempo[0] + $tempo[1]);
    }
    $start = Tempo();
    include("includes/common.php");

    $db = mysql_connect($db_host, $db_user, $db_password);

    mysql_select_db($db_name, $db);

    $theRow=$_POST['row'];

    $query="SELECT * FROM regali WHERE sectionID='$theRow' LIMIT 1";

    $result=mysql_query($query);

    echo substr(Tempo()-$start, 0, 5);
    $row=mysql_fetch_array($result);

    $theText=$row['sectionText'];

    $theImage=$row['sectionImage'];

    echo "&theText=$theText&theImage=$theImage";

    ?>
    [/php]


  • User Newbie

    Ora provo.


  • User Newbie

    QUESTO E' QUELLO CHE MI VIENE SCRITTO:

    0.131&theText=&theImage=

    che mi dici???


  • ModSenior

    Come puoi vedere la query impiega 0,1 secondi.
    Tu i 20 secondi come li hai cronometrati?


  • User Newbie

    Ho pubblicato il mio swf, l'ho caricato in una sottocartella di prova nell'ftp e ho digitato nel browser l'indirizzo.

    Mi si apre la pagina con il mio bottone, clicco e inizio a contare...passano circa (dipende) dai 10 secondi in su per visualizzare la foto e il testo di prova...

    Com'è possibile?


  • User Newbie

    ho pubblicato il mio swf, l'ho caricato in una sottocartella di prova nell'ftp e ho digitato nel browser l'indirizzo.

    mi si apre la pagina con il mio bottone, clicco e inizio a contare...passano circa (dipende) dai 10 secondi in su per visualizzare la foto e il testo di prova...

    Com'è possibile?


  • ModSenior

    Tutto quello che posso dirti è che non dipende da php.
    Devi comunque tenere in considerazione vari parametri, come ad esempio la latenza, ed il tempo che impieghi a visualizzare l'immagine di 80kb sul tuo hosting.
    Francamente 10secondi mi sembrano troppi, magari fai provare pure qualche amico per vedere se anche da lui va cosi lento (Se vuoi puoi anche mandarmi il link al file swf a me in privato e ti dico io).

    Stai attento ad iniziare con una maiuscola ed a terminare con un punto nei messaggi.


  • ModSenior

    Ricevuto il link, da me impiega circa 5 secondi.
    Come funziona il caricamento delle immagini con flash non lo sò, magari prova a togliere l'immagine e metti che compare solamente del testo per vedere se i tempi rimangono ugualmente lunghi, comunque credo dovrai aspettare qualche utente che usa interazioni php-flash che sicuramente saprà aiutarti più di me.


  • User Newbie

    Scusa se ti disturbo ancora, posso mandarti la capture della composizione della tabella in sql, magari ho sbagliato li qualcosa...solo che non capisco come si allega un'immagine...


  • ModSenior

    La query impiega solo 0,1 secondi quindi il problema non dovrebbe essere assolutamente lato server.


  • User Newbie

    Ti ho messo al posto dell'immagine di prima nel collegamento, lo screen della mia tabella sql, è giusta secondo te?.