我正在开发一个从MySQL表中获取数据的PHP页面,其中一个要求是用户可以选择在任何给定时间(50,100,250,500和All)可以显示的项目数。
当桌子有超过5000件物品时,我很难将所有物品都显示在网站上。我在Google Chrome和Microsoft Edge上测试了该页面,在Chrome上它崩溃了大约3200个项目,在Edge上大约4500个。
这让我疯了!你能告诉我如何解决这个问题吗?谢谢!
该网站通常如此:
到目前为止,我所尝试的只是使用 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();
}