Ciao a tutti ,

Da circa un anno sto scrivendo uno script per il gioco del fantacalcio, purtroppo verso la fine del campionato mi sono accorto di un problema a cui non riesco a trovare una soluzione, quindi vi chiedo consigli/aiuti per risolvere il problema del timeout.

Cominciamo da una descrizione generale della tabella del mysql e del codice php

Codice PHP:
CREATE TABLE `players` (
  `
idint(1NOT NULL auto_increment,
  `
idplayerint(3NOT NULL default '0',
  `
weekint(1NOT NULL default '0',
  `
fnamevarchar(35collate latin1_general_ci NOT NULL,
  `
teamvarchar(12collate latin1_general_ci NOT NULL,
  `
statusint(1NOT NULL default '0',
  `
rosterint(1NOT NULL default '0',
  `
matches_played_markint(1NOT NULL default '0',
  `
mark_fcdecimal(4,2NOT NULL default '0.00',
  `
mininf25decimal(4,2NOT NULL default '0.00',
  `
minsup25decimal(4,2NOT NULL default '0.00',
  `
mark_gazzettadecimal(4,2NOT NULL default '0.00',
  `
goal_scoredint(1NOT NULL default '0',
  `
goal_againstint(1NOT NULL default '0',
  `
goal_winint(1NOT NULL default '0',
  `
goal_drawint(1NOT NULL default '0',
  `
assistsint(1NOT NULL default '0',
  `
yellowint(1NOT NULL default '0',
  `
redint(1NOT NULL default '0',
  `
penalty_kickint(1NOT NULL default '0',
  `
penalty_kick_againstint(1NOT NULL default '0',
  `
penalty_kick_catchint(1NOT NULL default '0',
  `
penalty_kick_missint(1NOT NULL default '0',
  `
own_goalint(1NOT NULL default '0',
  `
matches_playedint(1NOT NULL default '0',
  `
first_choise_playerint(1NOT NULL default '0',
  `
noneint(1NOT NULL default '0',
  `
homeint(1NOT NULL default '0',
  `
valuedecimal(4,2NOT NULL default '0.00',
  
PRIMARY KEY  (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci PACK_KEYS=1 CHECKSUM=1 DELAY_KEY_WRITE=1 AUTO_INCREMENT=22762 

lo script php č :

Codice PHP:
    $result_stats mysql_query("SELECT * FROM ".$_CONF['tprefix']."players WHERE roster = '$roster' ");
    if(!
$result_stats) { echo mysql_errno().": ".mysql_error()."
"
; }
    
$statcount mysql_numrows($result_stats);
    
$sc 0;
    
$p_array = Array();
    while(
$sc $statcount) {
        
$playerid mysql_result($result_stats,$sc,"idplayer");
        
$p_array[$playerid][pid] = $playerid;

        
$p_array[$playerid][fname] = mysql_result($result_stats,$sc,"fname");
        
$p_array[$playerid][matches_played_mark] = mysql_result($result_stats,$sc,"matches_played_mark");
        
$p_array[$playerid][team] = mysql_result($result_stats,$sc,"team");
        
$p_array[$playerid][mark_fc] = mysql_result($result_stats,$sc,"mark_fc");
        
$p_array[$playerid][mark_gazzetta] = mysql_result($result_stats,$sc,"mark_gazzetta");
       
$p_array[$playerid][value] = mysql_result($result_stats,$sc,"value");

        
$p_array[$playerid][goal_scored] = $p_array[$playerid][goal_scored] + mysql_result($result_stats,$sc,"goal_scored");
        
$p_array[$playerid][goal_against] = $p_array[$playerid][goal_against] + mysql_result($result_stats,$sc,"goal_against");
        
$p_array[$playerid][goal_win] = $p_array[$playerid][goal_win] + mysql_result($result_stats,$sc,"goal_win");
        
$p_array[$playerid][goal_draw] = $p_array[$playerid][goal_draw] + mysql_result($result_stats,$sc,"goal_draw");
        
$p_array[$playerid][assist] = $p_array[$playerid][assists] + mysql_result($result_stats,$sc,"assists");
        
$p_array[$playerid][yellow] = $p_array[$playerid][yellow] + mysql_result($result_stats,$sc,"yellow");
        
$p_array[$playerid][red] = $p_array[$playerid][red] + mysql_result($result_stats,$sc,"red");
        
$p_array[$playerid][penalty_kick] = $p_array[$playerid][penalty_kick] + mysql_result($result_stats,$sc,"penalty_kick");
        
$p_array[$playerid][penalty_kick_against] = $p_array[$playerid][penalty_kick_against] + mysql_result($result_stats,$sc,"penalty_kick_against");
        
$p_array[$playerid][penalty_kick_catch] = $p_array[$playerid][penalty_kick_catch] + mysql_result($result_stats,$sc,"penalty_kick_catch");
        
$p_array[$playerid][penalty_kick_miss] = $p_array[$playerid][penalty_kick_miss] + mysql_result($result_stats,$sc,"penalty_kick_miss");
        
$p_array[$playerid][own_goal] = $p_array[$playerid][own_goal] + mysql_result($result_stats,$sc,"own_goal");
        
$p_array[$playerid][matches_played] = $p_array[$playerid][matches_played] + mysql_result($result_stats,$sc,"matches_played");
        
$p_array[$playerid][first_choise_player] = $p_array[$playerid][first_choise_player] + mysql_result($result_stats,$sc,"first_choise_player");

        
$sc++;
    } 

Piccola spiegazione:
La tabella contiene i dati di ogni giocatore per singola giornata (totale 38 giornate) (campioanto 2007 --> 22.759 record ..). Lo script non fa altro che raccogliere le informazione per ogni giocatore e creare una classifica in base al campo che si desidera.

Il problema č che in queta maniera lo script mi vā in timeout ... alcuni esempio

portieri : Tempo di esecuzione: 2.20216 secondi
difensori : Maximum execution time of 60
centrocampisti : Maximum execution time of 60 seconds exceeded
attaccanti : Tempo di esecuzione: 8.34646 secondi .

Spero di aver detto tutto .. qualcuno mi puo dare delle idee o consiglio come migliorare la situazione ..

ciao a tutti e GRAZIE