PHP - tiempo de llenado de tablas html

 
Vista:
sin imagen de perfil
Val: 11
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

tiempo de llenado de tablas html

Publicado por Juan Carlos (16 intervenciones) el 13/02/2018 13:11:47
Hola,

Bd mysql tabla Productos con 15890 registros.

Necesito llevar los datos de esta tabla a un tabla html y lo estoy haciendo con un while

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
while ($row = $stmt_prds->fetch(PDO::FETCH_ASSOC))
{
    $prd_id = $row['prd_id'];
    $prd_code = $row['prd_code'];
    $prd_name = $row['prd_name'];
    $prd_desc = $row['prd_description'];
    $prd_ref = $row['prd_ref'];
    $prd_brand = $row['prd_brand'];
    $prd_ubic = $row['prd_ubic'];
    $prd_group = $row['prd_group'];
    $prd_img = $row['prd_img'];
    $prd_pv1 = $row['prd_pricesell1'];
    $prd_pv2 = $row['prd_pricesell2'];
    $prd_pv3 = $row['prd_pricesell3'];
    $prd_pv4 = $row['prd_pricesell4'];
    $prd_csto = $row['prd_pricecost'];
    $prd_stock = $row['prd_Existencias'];
    $prd_unid = $row['prd_UnidadEmpaque'];
    $prd_active = $row['prd_Activo'];
    $prd_date = $row['prd_FechaCreacion'];
    $prd_tax = $row['prd_PorcentajeIva']
?>
<tr <?php if($prd_active==0) echo 'class="table-warning"';?>>
    <th>
        <?php
        echo "<h6>".$prd_id."</h6>";?>
    </th>
 
    <td>
        <?php echo $prd_code;?>
    </td>
 
    <td>
        <?php
        if($prd_img)
            {
            ?>
            <span style="float: left; margin-right:10px;"><img style="max-width:100px; height:auto;" src="<?php echo ADMIN_URL;?>/uploads/products/<?php echo $prd_img;?>" /></span>
            <?php
            }
        echo "<h6>".$prd_name."</h6>";?>
        <samall><?php echo $prd_desc;?></small><br/>
        <?php
        if (isset($prd_ref)) { ?>
            <small><?php echo $prd_ref;?></small><br/>
        <?php }
        ?>
        <!-- <small><?php echo $prd_brand;?></small> -->
    </td>
    <td>
        <?php echo $prd_ubic;?>
    </td>
 
    <td>
        <?php
        $stmt = $conn->prepare ("SELECT grp_code, grp_name FROM ".$database_table_prefix."groups WHERE grp_code = ? LIMIT 1");
        $stmt->execute([$prd_group]);
        $row = $stmt->fetch(PDO::FETCH_ASSOC);
        $grp_code = stripslashes($row['grp_code']);
        $grp_name = stripslashes($row['grp_name']);
        echo $grp_name;?>
    </td>
 
    <td>
        <?php echo $co_money . number_format($prd_pv1, 2) . "\n";?><br/>
        <?php echo $co_money . number_format($prd_pv2, 2) . "\n";?><br/>
        <?php echo $co_money . number_format($prd_pv3, 2) . "\n";?><br/>
        <?php echo $co_money . number_format($prd_pv4, 2) . "\n";?>
    </td>
 
    <td>
        <?php echo $co_money . number_format($prd_csto, 2) . "\n";?><br/>
        <small><?php echo "X " . $prd_unid;?></small>
    </td>
 
    <td>
        <?php echo number_format(($prd_tax * 100), 2) . "%";?>
    </td>
 
    <td>
        <?php echo number_format($prd_stock, 2) . "\n";?><br>
        <small><?php echo $prd_unid ."(s)";?></small>
    </td>
 
    ?>
 
    <td>

El problema es que demora 20 minutos en llenar la tabla, he probado con datatables y también se demora hasta que saca error.

Cual es la mejor forma de realizar este proceso y que sea mucho mas rápido?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.084
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

tiempo de llenado de tablas html

Publicado por xve (6933 intervenciones) el 13/02/2018 17:55:12
Hola Juan Carlos, entiendo que tu tabla tiene los indices correctos, y la lentitud no es por culpa de la misma...

Creo que el problema esta en que el navegador no puede renderizar tantas lineas... puede ser ese el problema? Puedes paginar la salida para no cargar tanto el navegador?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

tiempo de llenado de tablas html

Publicado por Juan Carlos (16 intervenciones) el 13/02/2018 18:39:28
Hola xve,

La tabla ya esta paginando, lo que hace es leer todos los todos los registros y al final (20 min despues) presenta la primera pagina con 10,20, o 50 registros y para cambiar de una pagina a otra ya lo hace muy rápido.

Se puede hacer que lea los primeros 50 registros y a medida que el usuario llame las paginas lea mas registros?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.084
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

tiempo de llenado de tablas html

Publicado por xve (6933 intervenciones) el 14/02/2018 08:24:32
Hola Juan Carlos, la verdad es que es muy extraño que la primera pagina sea tan lenta y las siguientes no... que cambia de la consulta de la primera pagina a la segunda pagina?

No se muy bien que puedes ser... pero...
la tabla tiene sus indices correctamente?
utilizas LIMIT para limitar el numero de registros que tiene que devolver la consulta?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar