Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php网页中的SQL查询在显示30000个条目时运行得非常慢_Php_Html_Mysql_Sql_Phpmyadmin - Fatal编程技术网

php网页中的SQL查询在显示30000个条目时运行得非常慢

php网页中的SQL查询在显示30000个条目时运行得非常慢,php,html,mysql,sql,phpmyadmin,Php,Html,Mysql,Sql,Phpmyadmin,我有一个大约30000行的数据库,我想在网页中显示。不幸的是,获取数据需要很长的时间,在此操作过程中会多次冻结浏览器。我怎样才能加快速度 <?php require_once'includes/session.php'; ?> <?php require_once'includes/db_connect.php'; ?> <?php $page = $_SERVER['PHP_SELF']; $sec = "50"; ?> <!DOCTYPE

我有一个大约30000行的数据库,我想在网页中显示。不幸的是,获取数据需要很长的时间,在此操作过程中会多次冻结浏览器。我怎样才能加快速度

<?php require_once'includes/session.php'; ?>
<?php require_once'includes/db_connect.php'; ?>
<?php
$page = $_SERVER['PHP_SELF'];
$sec = "50";
?>


    <!DOCTYPE html>
    <html>
    <head>

     <meta http-equiv="refresh" content="<?php echo $sec?>;URL='<?php echo $page?>'">

    <title> Real Time Eelection Results</title>


         <link rel="stylesheet" type="text/css" href="css/css-table.css">

         <script type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
          <script type="text/javascript" src="js/style-table.js"></script>

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

</head>


<body>


                <form action="search.php" method="GET">
                <input type="text" name="sql" />
                 <input type="submit" value="Search" />
                </form>





                    <?php 

                       $sql = "SELECT * FROM data_db"
                       ;


                      if($result = mysqli_query($connection, $sql)){
                         if(mysqli_num_rows($result) > 0){


                           echo "<table>";

                                echo "<thead>";

                                echo "<tr>";
                                echo "<th>ID</th>";
                                echo "<th>DATE</th>";
                                echo "<th>Data 1    </th>";
                                  echo "<th>Data 2  </th>";
                                    echo "<th>Data 3</th>";
                                      echo "<th>Data 4  </th>";

                                echo "<th>Data 5</th>";
                                echo "<th>Data 6</th>";
                                echo "<th>Data 7 </th>";
                                echo "<th>Data 8</th>";
                                echo "<th>Data 9</th>";
                                echo "<th>Data 10</th>";
                                echo "<th>Data 11</th>";
                                echo "<th>Data 12</th>";
                                echo "<th>Data 13</th>";
                                echo "<th>Data 14</th>";
                                echo "<th>Data 15</th>";
                                echo "<th>Data 16</th>";
                                echo "<th>Data 17</th>";
                                echo "<th>Data 18</th>";
                                echo "<th>Data 19</th>";
                                echo "<th>Data 20</th>";
                                echo "<th>Data 21</th>";
                                echo "</tr>";

                                  echo "</thead>";

                            while($row = mysqli_fetch_array($result)){
                              echo "<tr>";
                              echo "<td><b>" . $row['id'] . "</td>";
                              echo "<td><b>" . $row['date'] . "</td>";

                                echo "<td><b>" . $row['data_1'] . "</td>";
                                echo "<td><b>" . $row['data_2'] . "</td>";
                                echo "<td><b>" . $row['data_3'] . "</td>";
                                echo "<td><b>" . $row['data_4'] . "</td>";
                                echo "<td><b>" . $row['data_5'] . "</td>";
                                echo "<td><b>" . $row['data_6'] . "</td>";
                                echo "<td><b>" . $row['data_7'] . "</td>";
                                 echo "<td><b>" . $row['data_8'] . "</td>";
                                echo "<td><b>" . $row['data_9'] . "</td>";
                                echo "<td><b>" . $row['data_10'] . "</td>";
                                 echo "<td><b>" . $row['data_11'] . "</td>";
                                echo "<td><b>" . $row['data_12'] . "</td>";
                                echo "<td><b>" . $row['data_13'] . "</td>";
                                  echo "<td><b>" . $row['data_14'] . "</td>";
                                  echo "<td><b>" . $row['data_15'] . "</td>";
                                  echo "<td><b>" . $row['data_16'] . "</td>";
                                  echo "<td><b>" . $row['data_17'] . "</td>";
                                  echo "<td><b>" . $row['data_18'] . "</td>";
                                  echo "<td><b>" . $row['data_19'] . "</td>";
                                  echo "<td><b>" . $row['data_20'] . "</td>";

                                  $pink = $row['data_21'];

               echo "<td><b><a href =".$pink.'.jpg'.">Image</a></td>";


                              echo "</tr>";
                              }

                              echo "</table>";


                            // Close result set
                            mysqli_free_result($result);
                                  } else{
                             echo "No records matching your query were found.";
                            }
                            } else{
                            echo "ERROR: Could not able to execute $sql. " . mysqli_error($connection);
                                }

                            // Close connection
                            mysqli_close($connection);

                            ?>
    </body>
</html>

一些浏览器将冻结,因为它们试图在页面加载时呈现页面。我在修改大型表时遇到了类似的问题。最适合我的解决方案是强制浏览器一次呈现整个表。您可以尝试将表放入一个隐藏的div中,并在加载页面后显示该div

例如:

<script type="text/javascript">
window.onload = function () {
     document.getElementById("table-container").style.display = "block";
}; 
</script>
<div id="table-container" style="display: none;">
 ... table code here ...
</div>

window.onload=函数(){
document.getElementById(“表容器”).style.display=“块”;
}; 
... 表代码在这里。。。

使用分页,这是解决问题的方法

或者,如果您是php新手,可以用谷歌搜索出许多分页示例

有些在这里


是否不显示30000条记录?使用分页/过滤等。你能给我举个例子吗?我对这一点还不熟悉。我投票结束这个问题,因为你必须预计获取和显示30000条记录的速度会很慢。特别是当这些行中的每一行都有21列时。@Todd:MySQL分页的基础是从my_表中选择*,其中条件限制为0,20,您将
0
更改为
20
40
,等等。这是起始数字,第二个参数固定为20,这就是你想要的唱片数量。我试过这个只是为了绝望,我不敢相信它真的有效(+1)。