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]; } } }

Rispondi quotando