Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Caricamento pagina troppo lungo.. chi mi aiuta?

    Ciao a tutti, ho un problema.... questa pagina ci impiega troppo tempo ad elaborare i dati... sono riuscita a localizzare il problema all'interno della pagina.... il pezzo laborioso è il seguente....

    codice:
    $a_area=array();
       $arra_finale=array();
       
       for ($t=0;$t<count($loading);$t++) {
       
       unset($a_area);
       $a_area=a_areas($loading[$t][0]);
    
       $inizio=count($arra_finale);
       $fine=count($arra_finale)+count($a_area);
    
       $var=0;
       for ($q=$inizio;$q<$fine;$q++) {
       
            for ($f=0;$f<$tot_stock;$f++) { if ($stock_area[$f][0]==$a_area[$var]['stock_area']) $st_area=$stock_area[$f][1];}
            $arra_finale[$q][0]=$a_area[$var]['stock_area'];
    	$arra_finale[$q][1]=$st_area; if ($a_area[$var]['shelf']!="") $arra_finale[$q][1].=" / ".$a_area[$var]['shelf'];
            $arra_finale[$q][2]=$loading[$t][1];
            $arra_finale[$q][3]=$loading[$t][2];
            $arra_finale[$q][4]=$loading[$t][3];
            $arra_finale[$q][5]=$loading[$t][4];
            $arra_finale[$q][6]=$a_area[$var]['quantity'];
            $arra_finale[$q][7]=$loading[$t][5];
            $arra_finale[$q][8]=$loading[$t][6];
            $var++;
       }}
    il problema compare quando ho un numero abb. grande di dati nel db... alla fine dell'operazione verranno mostrati (in questo caso) 4000 righe circa...
    come posso ridurre il tempo di elaborazione?

  2. #2
    prova con la paginazione dei risultati, ad esempio con 200 record per pagina.
    www.touring-car.it

  3. #3
    come si fa? non l'ho mai fatto

  4. #4
    Devi adattare questo codice

    Codice PHP:

    $pageObj
    =new makePage
    $pageObj->setVars(mysql_num_rows($query),10); 
    while (
    $rigo=mysql_fetch_array($query)){ 
    if (
    $pageObj->init $pageObj->limit && $pageObj->recCount >= $pageObj->init){ 
    // QUI SCRIVETE LA VOSTRA PAGINA 
    $pageObj->init++; 

    $pageObj->recCount++; 

    // menù navigazione 
    $pageObj->showNavigator(); 
    mysql_free_result($query); 

    //classe di paginazione
    class makePage{

            
    // setta le variabili necessarie a gestire la 
            // paginazione, come argomenti vuole il numero
            // di record totali e i record per pagina (arbitrario)
            
    function setVars($num,$perPage){
                
    // ultimo record da visualizzare
                
    $limit=$perPage
                
    // pagine totali
                
    $totPages=ceil($num/$perPage); 
                
    // pagina corrente effettiva
                
    $currentPage=1
                
    // pagina richiesta
                
    $page=1
                
    // detrmina da che punto in poi del ciclo
                //  devono essere visulizzati i record
                
    $init 0;  
                if(isset(
    $_GET['page']) && $_GET['page']!="" ){
                    
    $page $_GET['page'];
                }
                
    $recCount 0;
                
    $currentPage=$page;
                
    $nextPage=$page+1;
                
    $previousPage=$page-1;
                
    $firstPage=1;
                
    $lastPage=$totPages;
                
    // se è stata scelta una pagina
                // particolare il limite corrisponde
                // alla pagina moltiplicata per i record per pagina
                
    $limit=$page*$perPage;
                
    // l'inizio invece corrisponde al
                // limite meno i record per pagina
                
    $init = ($limit-$perPage);
                
    // setto le proprietà della pagina
                
    $this->page=$page;
                
    $this->recCount 0;
                
    $this->currentPage=$page;
                
    $this->nextPage=$page+1;
                
    $this->previousPage=$page-1;
                
    $this->firstPage=1;
                
    $this->lastPage=$totPages;
                
    $this->limit=$limit;
                
    $this->init=$init;
            }
            
            
            function 
    getOthers(){    
                
    // funzione che preleva le altre variabili http
                // con i rispettivi valori per aggiungerli al link 
                // della barra di navigazione in luogo di $params
                
    $params "";
                foreach (
    $_GET as $value) {
                    if ((
    key($_GET))!="page"){ // prelevo le altre variabili http ECCETTO page
                        
    $params.=(key($_GET))."=".$value."&";
                        
    next($_GET);
                    }
                }
                
    $this->params $params;

            }
            
    // mostra la barra di navigazione tra i record
            
    function showNavigator(){
                    
    // mi assicuro che i record trovati siano != 0 e la 
                    // pagina non sia 1
                    
    if ($this->lastPage!=&& $this->lastPage!=1){ 
                    
    $this->getOthers(); 
                    
    // costruisco la barra di navigazione
                        
    echo "
                        


                        <table width='100%' cellspacing='5'>
                            <tr>
                            <td align='center' width='20%'>"
    ;
                            if (
    $this->page!=1){
                                echo 
    "[url='?".$this->params."page=".$this->firstPage."']&lt;&lt;[/url]";
                            }
                            echo 
    "</td><td align='center' width='20%'>";
                            if (
    $this->page!=1){
                                echo 
    "[url='?".$this->params."page=".$this->previousPage."']&lt;[/url]";
                            }
                            echo 
    "</td><td align='center' width='20%'>";
                            
    // gestione numeri di pagina
                                
    $pageInterval=10// corrisponde all'intervallo di pagine visualizzato
                                
                                
    $from = ((ceil($this->currentPage/10)-1)*10)+1
                                
    $to $from $pageInterval;
                                for (
    $numPage=$from;$numPage<=$to;$numPage++){
                                    if (
    $numPage<=$this->lastPage){
                                        echo 
    "
                                        <a href='?"
    .$this->params."page=".$numPage."'>";
                                        if (
    $this->currentPage==$numPage){ 
                                        
    // se la pagina corrente è uguale a $numPage la visualizzo in grassetto
                                            
    echo "[b]$numPage[/b]</a>";
                                        }
                                        else {
                                            echo 
    "$numPage</a>";
                                        }
                                    }
                                }
                            
    // fine gestione numeri di pagina
                            
    echo "</td><td align='center' width='20%'>";
                            if (
    $this->lastPage!=$this->currentPage){
                                echo 
    "[url='?".$this->params."page=".$this->nextPage."']&gt;[/url]";
                            }
                            echo 
    "</td><td align='center' width='20%'>";
                            if (
    $this->lastPage!=$this->currentPage){
                                echo 
    "[url='?".$this->params."page=".$this->lastPage."']&gt;&gt;[/url]";
                            }
                            
                            echo 
    "</td>
                            </tr>
                            <tr>
                                <td align='center' colspan='5'>"
    ;
                            echo 
    "Pagina [b]".$this->currentPage."[/b] di [b]".$this->lastPage."[/b]
                                </td>
                            </tr>
                        </table>
                        </p>
                        "
    ;
                    }    
            }


    www.touring-car.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.