在没有页面崩溃的情况下从表格到页面输出所有数据的最佳方法是什么?

时间:2017-10-17 18:23:40

标签: php mysql

我正在开发一个从MySQL表中获取数据的PHP页面,其中一个要求是用户可以选择在任何给定时间(50,100,250,500和All)可以显示的项目数。

当桌子有超过5000件物品时,我很难将所有物品都显示在网站上。我在Google Chrome和Microsoft Edge上测试了该页面,在Chrome上它崩溃了大约3200个项目,在Edge上大约4500个。

这让我疯了!你能告诉我如何解决这个问题吗?谢谢!

该网站通常如此:

enter image description here

到目前为止,我所尝试的只是使用 flush() set_time_limit(0),但变化很小。

以下是处理表格数据的部分:

$tablaO=listadoFaltantes($filProveedor, $filEstatus, $filMargin, $valor, $filGuia, $pais, $paisu, $registroPorPagina, $pagina);                                                                             
            if(mysqli_num_rows($tablaO)>0)                                              
            {   
                ob_start();
                $i = 0;
                $e = 1;
                if($pagina > 1) $e = 1*($registroPorPagina*($pagina-1))+1;
                $CantidadTres = 1;
                while($registroO=mysqli_fetch_assoc($tablaO))                                                                   
                {
                    $fechaCambio = $registroO['art_fecha_cotizado'];
                    $entregado = false;
                    $estatusOrden = "Buenot2";
                    if(!$entregado)
                    {
                        $date = date("Y-m-d");
                        $diff = abs(strtotime($date) - strtotime($fechaCambio));
                        $years = floor($diff / (365*60*60*24));
                        $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
                        $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
                        if(ceil($days)>=3)
                        {
                            if(ceil($days) == 3){
                                if(isWeekend(date('Y-m-d',strtotime("-1 days"))) || isWeekend(date('Y-m-d',strtotime("-2 days"))))
                                {
                                    if ($e%2!= 0)
                                    {   
                                        $estatusOrden = "bueno";
                                    }else{          
                                            $estatusOrden = "Buenot2";  
                                        }
                                }else{
                                        if($registroO['art_id_proveedor'] == '?' OR $registroO['art_id_estatus'] == 'SC')
                                        {                       
                                            $estatusOrden = "tardio";
                                            $CantidadTres = $CantidadTres + 1;  
                                        }elseif ($e%2!= 0){
                                                $estatusOrden = "bueno";
                                            }
                                    }
                            }else{
                                    if($registroO['art_id_proveedor'] == '?' OR $registroO['art_id_estatus'] == 'SC')
                                    {   
                                        $estatusOrden = "tardio";
                                        $CantidadTres = $CantidadTres + 1;  
                                    }else if ($e%2!= 1){
                                            $estatusOrden = "Buenot2";
                                        }       
                                }                               
                        }else{                      
                                if ($e%2== 0)
                                {       
                                    $estatusOrden = "bueno";
                                }else{          
                                        $estatusOrden = "Buenot2";
                                    }
                            }
                    }else{
                            if ($e%2== 0)
                            {                   
                                $estatusOrden = "bueno";            
                            }else{          
                                    $estatusOrden = "Buenot2";  
                                }
                        }                       

                    $estatus = $registroO['art_id_estatus'];
                    if($estatus != 'CF')
                    {
                        switch($estatus)
                        {
                            case 'EC':$color='ffffff';
                                break;
                            case 'SC':$color='ffffff';
                                break;
                            case 'CE':$color='ffffff';
                                break;
                            case 'AP':$color='ffffff';
                                break;
                            case 'PA':$color='ffffff';
                                break;
                            case 'PB':$color='ffffff';
                                break;
                            case 'RE':$color='ffffff';
                                break;
                            case 'ER':$color='ffffff';
                                break;
                            case 'RO':$color='background-color: #ff6699 !important;';
                                break;
                            case 'EO':$color='background-color: #67a22a !important;';
                                break;
                            case 'LE':$color='background-color: #92d050 !important;';
                                break;
                        }

                        if($registroO['art_id_proveedor'] == '?' and $registroO['art_id_estatus'] == 'ST')
                        {
                            $colorLetra = 'color: #212020;';
                        }else{                                                                          
                                $colorLetra = 'color: #000;';
                            }

                        if($registroO['art_cortado'] != '0')
                        {
                            if($registroO['art_cortado'] == '1')
                            {
                                $VeriCortado = '';
                                $listaVeriCortado = listadoArticulosQueFueronCortadosDeEste($registroO['art_id_verificador']);
                                while($regVeriCortado = mysqli_fetch_assoc($listaVeriCortado)){
                                    $VeriCortado .= $regVeriCortado['art_id_verificador']."\r\n";
                                }
                                $cortado = '<a href = "javascript:showCorte('.$i.')"><img src="images/cortar1.png" style=" width: 30px;height: auto;" class="icon" title = "Este registro fue cortado en partes. De clic para ver los artículos relacionados." /></a>
                                <div id="corte'.$i.'" style="display:none;"><textarea readonly>'.$VeriCortado.'</textarea></div>';
                            }else{
                                    $cortado = '<a href = "javascript:showCortado('.$i.')"><img src="images/cortar2.png" style=" width: 30px;height: auto;" class="icon" title = "Este registro es parte de otro que fue cortado. De clic aquí para ver el registro original." /></a>
                                    <div id="cortado'.$i.'" style="display:none;"><textarea readonly>'.$registroO['art_cortado_de'].'</textarea></div>';
                                }                           
                        }else{                              
                                $cortado = '';  
                            }

                        $ordenart= $registroO["art_id_orden"];
                        $provedorart = $registroO["art_id_proveedor"];
                        $ISBNar = $registroO["art_ISBN"];
                        $SKU1 = $registroO["art_SKU"];                                      
                        $letra3 = substr($ISBNart, 1, 6); 
                        $letra4 = substr($SKU1, -5);  
                        $letra5 = $ordenart.$provedorart.$letra4.$letra3;
                        //$sumF = listadoSumaFaltantes($provedorart);                                           
                        $master = listadoMaster($ISBNart,$provedorart);
                        $mast = $master['mast_precio'];
                        $verificador = $registroO['art_id_verificador'];
                        $detalleDeposito = detalleDepositoArtProv($provedorart,$verificador);
                        $dep_id = $detalleDeposito['dep_id'];
                        $sumFCred = listadoSumaFaltantesDeposito2($provedorart, $dep_id);
                        $sumF = listadoSumaFaltantesDeposito($provedorart, $dep_id);
                        $TipoPago = $sumFCred['pro_id_tipoPago'];
                        $total = $registroO['art_cantidad'] * $registroO['art_cost'];       
                        $nuevo_texto = wordwrap($registroO['art_titulo'], 22, "</br>");
                        if($registroO['est_descripcion'] == 'Recibido en oficina')
                        {
                            echo '<tr valign="top" class="registro" name="tr/'.$i.'" id="tr/'.$verificador.'" style="font-size: 12px; text-align: -webkit-center; '.$colorLetra.' '.$color.' background-color: #ff6699 !important; ">';
                        }else{  
                                echo '<tr valign="top" class="registro '. $estatusOrden.'" name="tr/'.$i.'" id="tr/'.$verificador.'" style="font-size: 10px;text-align: -webkit-center; '.$colorLetra.'">';
                            }

                            echo '<td style="width: 2% !important;">'.$e.'</td>
                            <td style=" float: left; width: 2% !important;">
                                <input type="checkbox" name="chbArticulo[]" value="'.$verificador.'-'.$i.'" onChange="cambia(this)" onclick="habilitarContenido();"></input>
                                <input type="hidden" name="letra5[]" value="'.$letra5.'" readonly="readonly" style="border: 0px;background: none;" disabled></input>
                                '.$cortado.'
                            </td>               
                            <td style="width: 4% !important;"><a href="FaltantesDetalle.php?orden='.$ordenart.'" style="color: #021c1c;">'.$verificador.'</a></td>      
                            <td style="width: 4% !important; height: 5px !important; /* float: left;*/ max-width: 50px !important; /*margin-left: -100%;*/" onclick="myFunction('.$i.');">                                  
                                <div class="popup"  style="height: 5px;" onclick = "return false;">
                                    '.$registroO['ord_id'].'';
                                    include('include/FaltantesPopUpOrden.php');
                                echo'</div>                                 
                            </td>
                            <td  style="width: 4% !important;"> 
                                <a href="#"  onclick=window.open("EditarBook.php?ISBN='.$registroO['art_N13'].'","ventana","width=452,height=500,scrollbars=NO,menubar=NO,resizable=NO,titlebar=NO,status=NO"); style="color: #073169;" return false>
                                    '.$registroO['art_N13'].'
                                </a>
                            </td>
                            <td style="width: 4% !important;">'.$registroO['art_ISBN'].'</td>
                            <td style="width: 20% !important;">'.$nuevo_texto.'</td>

                            <td  style="width: 4% !important;">'.$registroO['art_SKU'].'</td>';     

                            if($registroO['art_id_proveedor'] == '?')
                            {                                   
                                echo'<td style="width: 4% !important;"> 
                                    <input type="text" value="'.$registroO['art_cantidad'].'" name="txtCantidad[]" style="border: 0px; text-align: -webkit-center; '.$colorLetra.'" class="inputChico" readonly="readonly" disabled />
                                </td>'; 
                            }else{                      
                                    echo'<td style="width: 4% !important;"> 
                                        <input type="text" value="'.$registroO['art_cantidad_org'].'" name="txtCantidad[]" style="border: 0px; background: rgba(255, 255, 255, 0); text-align: -webkit-center; '.$colorLetra.'" class="inputChico" readonly="readonly" disabled />
                                    </td>';                                 
                                }
                            if($registroO['art_Confirmacion'] == '2' or $registroO['art_Confirmacion'] == '0')
                            {
                                if($registroO['art_id_proveedor'] != '?')
                                {
                                    echo'<td style=" text-align: -webkit-center; width: 4% !important;"> 
                                        <input type="text" value="'.($registroO['art_cantidad_org'] == $registroO['art_cantidad'] ? $registroO['art_cantidad_org'] : $registroO['art_cantidad']).'" name="txtCambiarProv[]" style="color: red;" class="inputChico" disabled />
                                    </td>';                                 
                                }else{
                                        echo'<td style=" text-align: -webkit-center; width: 4% !important;">
                                            <input type="hidden" name="txtCambiarProv[]" disabled />
                                        </td>'; 
                                    }
                            }else{
                                    echo'<td style="text-align: -webkit-center;color:red;font-size: 13px; font-weight: bold; width: 4% !important;">
                                        <input type="text" name="txtCambiarProv[]" class="inputChico"  value="'.$registroO['art_cantidad'].'" style="color:red; text-align: -webkit-center; border: 0px solid; background-color: transparent;" readonly disabled />
                                    </td>';     
                                }

                            echo'<td style="width: 4% !important;">$'.number_format((float)$registroO['art_precio'],2,'.','').'</td>';  
                            if($mast != null)
                            {   
                                echo'<td style="width: 4% !important;">$'.$mast.'</td>';                                            
                            }else{  
                                    echo'<td style="width: 4% !important;">$'.number_format((float)$registroO['art_master'],2,'.','').'</td>';
                                }       
                            echo '<td style="width: 4% !important;">$'.number_format((float)$registroO['art_cost'],2,'.','').'</td>';

                            if($registroO['art_Confirmacion'] == '1' or $registroO['art_Confirmacion'] == '0')
                            {
                                if($registroO['art_id_proveedor'] != '?')
                                {       
                                    $CostoH = DetalleCostoSKU($SKU1);
                                    if($CostoH['cost_costo'] != NULL)
                                    {                                           
                                        echo '<td style="width: 4% !important;">
                                            $<input type="text" value="'.$CostoH['cost_costo'].'" name="txtCost[]" style="width: 50px;" class="inputChico" disabled />
                                        </td>';                                         
                                    }else{                                              
                                            echo '<td style="width: 4% !important;">
                                                $<input type="text" value="'.$registroO['art_cost'].'" name="txtCost[]" style="width: 50px;" class="inputChico" disabled />
                                            </td>'; 
                                        }                                       
                                }else{
                                        echo'<td style=" text-align: -webkit-center; width: 4% !important;"><input type="hidden" name="txtCost[]" disabled /></td>';        
                                    }
                            }else{
                                    echo'<td style=" text-align: -webkit-center; width: 4% !important;"><input type="hidden" name="txtCost[]" disabled /></td>';        
                                }

                            echo '<td style="width: 4% !important;">$'.number_format((float)$total,2,'.','').'</td>';   

                            if($estatus == 'CE' OR $estatus == 'PA')
                            {           
                                if($estatus == 'CE')
                                {
                                    echo '<td style="color:red; width: 4% !important;">$'.number_format((float)$sumF['cantindad'],2,'.','').'</td>';
                                }   

                                if($estatus == 'PA')
                                {
                                    if($TipoPago == 'TC' OR $TipoPago == 'CD')
                                    {
                                        echo '<td style="color:red; width: 4% !important;">$'.number_format((float)$sumFCred['cantindad'],2,'.','').'</td>';                                            
                                    }else{
                                            echo '<td style="width: 4% !important;">$</td>';        
                                        }
                                }
                            }else{
                                    echo '<td style="width: 4% !important;">$</td>';                                        
                                }
                            $MarginPro1 = $registroO['art_MarginProf']; 
                            //$MarginPro1 = number_format($MarginPro1, 10, '.', '');
                            $MarginPro =  substr($MarginPro1, 0, 1);
                            if($MarginPro1 == '' OR $MarginPro1 == NULL)
                            {
                                echo'<td></td>';        
                            }else{
                                    if($MarginPro == '0')
                                    {
                                        //$calrCosto = explode(".",$MarginPro1);
                                        //$cal1 = $calrCosto[1];
                                        //$Calr =  substr($cal1, 0, 2); 
                                        if($MarginPro1 <= .5)
                                        {
                                            echo'<td style="background: #42c517; width: 4% !important;">'.$MarginPro1.'</td>';      
                                        }

                                        if($MarginPro1 > .5)
                                        {
                                            echo'<td style="background: #ffb100; width: 4% !important;">'.$MarginPro1.'</td>';      
                                        }
                                    }else{
                                            echo'<td style="background: #ff0000; width: 4% !important;">'.$MarginPro1.'</td>';                      
                                        }                           
                                }

                            echo'<td>'.$registroO['est_descripcion'].'</td>
                            <td>'.$registroO['art_status_recoleccion'].'</td>   
                            <td>'.$fechaCambio.'</td>';
                            if($registroO['est_id'] != 'EC' && $registroO['est_id'] != 'SC')
                            {                           
                                echo '<td style="width: 4% !important;">
                                    <select name="selProveedor[]" class="selectChico" style="width: 93px;" disabled>';
                                        llenarOpciones(listadoProveedor(),'pro_id_clave','pro_id_clave',$registroO['art_id_proveedor']);
                                    echo '</select>
                                </td>';                             
                            }else{
                                    echo '<td style="width: 4% !important;">
                                        <select name="selProveedor[]" class="selectChico" style="width: 93px;" disabled>';
                                            llenarOpciones(listadoProveedor(),'pro_id_clave','pro_id_clave',$registroO['art_id_proveedor']);
                                        echo '</select>
                                    </td>';
                                }
                            echo '<td style="width: 4% !important;">
                                <textarea type="text" name="txtNota[]" class="areaChico" style="max-width: 140px; margin: 0px; width: 130px; max-height: 60px; height: 60px;" disabled>'.$registroO['art_nota'].'</textarea>
                            </td>
                        </tr>'; 
                        $i++;
                        $e++;
                        usleep(1);
                        ob_flush();
                        flush();
                    }
                }
                ob_end_flush();
            }

0 个答案:

没有答案
相关问题