ciao a tutti, non so in che sezione postare questo messaggio perchè riguarda il php e il flash(in particolare l'AS)....comunque lo scopo è visualizzare dentro 3 mc i risultati prodotti dall'interrogazione di un DB tramite php
questo è il codice php:
<?php
//dati per la connessione al DB
$db_host = "localhost";
$db_user = "root";
$db_password = "PSW";
$db_name = "agenzia";
//connessio al DB
$db = mysql_connect($db_host,$db_user,$db_password);
$db_forum = mysql_select_db($db_name,$db);
//creo la query per estrazione dati da DB
$query = "SELECT nome,cognome,datanascita FROM agenti ORDER BY cognome";
//applico la $query e ottengo $query_result (un identificativo di risultato)
//la variabile "i" serve per conoscere il numero esatto dei record restituiti.
$query_result = mysql_query($query);
// ... acquisisci il numero di righe prodotte
$nRows = mysql_num_rows($query_result);
// ... ciclo di lettura delle righe
$nRow = 1;
$resultSet = "";
while ($nRow <= $nRows)
{
// ... fetch della singola RIGA (della query risultante)
$riga = mysql_fetch_array($query_result);
// ... fetch delle COLONNE (eseguire sempre l'urlencode del contenuto)
$resultSet .= "&nome" . $nRow . '=' . urlencode($riga["nome"]);
$resultSet .= "&cognome" . $nRow . '=' . urlencode($riga["cognome"]);
$resultSet .= "&datanascita" . $nRow . '=' . urlencode($riga["datanascita"]);
// ... skip alla RIGA successiva
$nRow++;
}
echo "&ok=1&i=".$nRows.$resultSet;
mysql_close($db);
exit();
?>
dovrebbe funzionare correttamente perchè se esegui la pagina .php mi da i corretti risultati
mentre in ActionScript uso questo codice associato a 1 pulsante:
on(release){
loader = new LoadVars();
loader.load("FlashMySQL.php");
loader.onLoad = function(success)
{
if(success)
{
trace("quanto vale ok?"+this.ok);
if(this.ok)
{
_root.nome_txt.htmlText = "";
_root.cognome_txt.htmlText = "";
_root.datanascita_txt.htmlText = "";
trace("la i vale:"+this.i);
trace("il nome vale:"+this.nome);
for(var j=1; j <= this.i; j++)
{
_root.nome_txt.htmlText += eval("this.nome" + j)+"\r";
_root.cognome_txt.htmlText += eval("this.cognome" + j)+"\r";
_root.datanascita_txt.htmlText += eval("this.datanascita" + j)+"\r";
} //fine for
_root.output_txt.text = "ok";
}//fine if(this.ok)
else
{
_root.nome_txt.htmlText = "";
_root.cognome_txt.htmlText = "";
_root.datanascita_txt.htmlText = "";
_root.output_txt.text = "ERRORE";
}//fine else
}//fine if(success)
}//fine function(success)
}//fine on(relase)
il problema è che il ciclo for va in loop infinito!!!
ho inserito i comandi trace,prorpio per vedere perchè va in ciclo infinito!
quello che ho ottenuto come risultato dei trace sono questi:
ok = 1 <--- quindi "ok" funziona perfettamente e assume il giusto valore
i = ".$nRows.$resultSet;
mysql_close($db);
exit();
?>
cioè la variabile "i" assume il valore del codice che termina il file .php....non assume invece il vero valore che io vedo facendo eseguire il file .php
quindi evidentemente nel file flash il "this.i" non funziona come dovrebbe...cioè anzicchè restituire il valore della variabile "i",mi da la parte di codice che termina l file .php
poi ho provato sostituendo "this.i" con "loader.i"....ma NON funziona lo stesso!
cosa posso fare???
come sostituire il this.i affinchè il flash assegni alla variabile "i" il valore corretto (e non la parte finale del codice!) ??????
quancuno può aiutarmi?????????????????![]()
![]()
![]()

Rispondi quotando