lo script funziona con un numero piccolo di dati contenuti nell'array... ora lo sto provando su un db di "normali" dimensioni e mi da questo risultato.... cioè con la funzione soiora indicata va addirittura in time_out oppure ci mette una vit (più di un minuto) ad eseguire la pagina.

Ora ti spiego il tutto... forse riesci ad aiutarmi... è da lunedì che ci sto lavorando a questi maledetti script e non riesco a capire perchè si comportano così.

Allora:

Innanzitutto apro la pagina con il classico <HTML>... bla bla bla e <BODY>.

poi...

codice:
$query="SELECT load_id,loading.p_n,description,meas_unit,quantity,order_n,unit_cost
FROM loading inner join part on loading.p_n=part.p_n";

//lacio la select
$result=mysql_query($query);
//conto quanti loading ci sono
$numrighe =mysql_num_rows($result);

//mi creo un array per loading e uno per pn
$arra_loading=array(); $arra_pn=array();
 
   //per ogni record della select
   for ($w=0;$w<$numrighe;$w++) {
   $riga=mysql_fetch_array($result);
   
   //metto nell'array arra_pn tutti i p_n ma senza ripetizioni
   if (!in_array($riga['p_n'],$arra_pn)) $arra_pn[]=$riga['p_n'];
   
   //mi carico la riga del record nell'arra_loading
   $arra_loading[$w][0]=$riga['p_n'];
   $arra_loading[$w][1]=$riga['description'];
   $arra_loading[$w][2]=$riga['meas_unit'];
   
        unset($quantity_un);
        //cerco tutti gli unloading di loading
        $q_1=mysql_query("select quantity from unloading where date_out<='$filtri[0]' and load_id='$riga[load_id]'");

        //e mi calcolo la quantità totale degli unloading
	for ($t=0;$t<tot_record($q_1);$t++) {
	$riga_1=mysql_fetch_array($q_1);
	$quantity_un=$quantity_un+$riga_1['quantity'];}

   //la quantità totale del loading è uguale alla differenza	
   $arra_loading[$w][3]=$riga['quantity']-$quantity_un;
   
        //calcolo il costo del loading
        unset($costo);
	if ($riga['unit_cost']>0) { $costo=$riga['unit_cost'];}
	else {                      $costo=order_cost($sys_par,$riga['order_n'],$riga['p_n']);}
	
   $arra_loading[$w][4]=$arra_loading[$w][3]*$costo;	
   
   }

//preparo l'array finale per essere stampato
   for ($y=0;$y<count($arra_pn);$y++) {
   
       for ($r=0;$r<count($arra_loading);$r++) {
           if ($arra_loading[$r][0]==$arra_pn[$y]) {
	      $arra_finale[$y][0]=$arra_loading[$y][0];
	      $arra_finale[$y][1]=$arra_loading[$y][1];
	      $arra_finale[$y][2]=$arra_loading[$y][2];
	      $arra_finale[$y][3]=$arra_finale[$y][3]+$arra_loading[$y][3];
	      $arra_finale[$y][4]=$arra_finale[$y][4]+$arra_loading[$y][4];
	   
	   }
       }
   }