2

簡単な質問です。簡単かもしれませんが、そうでないかもしれません。私は PHP、HTML、または MySQL に精通していませんが、試してみています。私が使用しているサンプル ページは次のとおりです: http://www.djdarby.com/sorter.php。アーティストと曲の 2 つのフィールドを含む 19600 のテーブルを表示しています。問題は、読み込みが非常に遅く、どこに指を向ければよいか分からないことです。クエリが単純すぎるか、一度にロードしすぎている可能性があります。ページ ソースで PHP が非表示になるため、コードは次のとおりです。このデータをすばやく出力する方法はありますか?

編集: javascript を使用してテーブルを作成していることを忘れていました。正確にはTinyTableです。

編集 NUMERO DOS: sorter2.php を作成しましたが、読み込みがずっと速いようです。これは JavaScript の問題ですか?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
        $con = mysql_connect("xx.xx.xx.xx", "xxxx", "xxx");
       // if (!$con) {
       //         die("Database connection failed: " . mysql_error());
       // } else {
       //         echo "\r\nConnected to the database.";
       // }
        $db = mysql_select_db("djdarby", $con);
       // if (!$db) {
       //         die("Database selection failed: " . mysql_error());
       // } else {
       //         echo "\r\nSelected to the database.";
       // }
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TinyTable</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
        <table cellpadding="0" cellspacing="0" border="0" id="table" class="sortable">
                <thead>
                        <tr>
                                <th><h3>Artist</h3></th>
                                <th><h3>Song</h3></th>
                        </tr>
                </thead>
                <tbody>
                        <?php
                          $result = mysql_query("SELECT * from SONGLIST", $con);
                          //if (!$result) {
                          //  die("Query failed: " . mysql_error());
                          //} else {
                          //  echo "\r\nSelected the table SONGLIST in database djdarby.<br /><br />";
                          //}

                          while ($row = mysql_fetch_array($result)) {
                            echo "<tr><td>" . $row['ARTIST'] . "</td>" . "<td>" . $row['SONG'] . "</td></tr>";
                          }
                        ?>
                </tbody>
  </table>
        <div id="controls">
                <div id="perpage">
                        <select onchange="sorter.size(this.value)">
                        <option value="5">5</option>
                                <option value="10" selected="selected">10</option>
                                <option value="20">20</option>
                                <option value="50">50</option>
                                <option value="100">100</option>
                                <option value="250">250</option>
                        </select>
                        <span>Entries Per Page</span>
                </div>
                <div id="navigation">
                        <img src="images/first.gif" width="16" height="16" alt="First Page" onclick="sorter.move(-1,true)" />
                        <img src="images/previous.gif" width="16" height="16" alt="First Page" onclick="sorter.move(-1)" />
                        <img src="images/next.gif" width="16" height="16" alt="First Page" onclick="sorter.move(1)" />
                        <img src="images/last.gif" width="16" height="16" alt="Last Page" onclick="sorter.move(1,true)" />
                </div>
                <div id="text">Displaying Page <span id="currentpage"></span> of <span id="pagelimit"></span></div>
        </div>
        <script type="text/javascript" src="script.js"></script>
        <script type="text/javascript">
  var sorter = new TINY.table.sorter("sorter");
        sorter.head = "head";
        sorter.asc = "asc";
        sorter.desc = "desc";
        sorter.even = "evenrow";
        sorter.odd = "oddrow";
        sorter.evensel = "evenselected";
        sorter.oddsel = "oddselected";
        sorter.paginate = true;
        sorter.currentid = "currentpage";
        sorter.limitid = "pagelimit";
        sorter.init("table",1);
  </script>
</body>
</html>
<?php
  mysql_close($con);
?>
4

1 に答える 1

0

"LIMIT $start,$stop" をクエリ文字列に追加し、1 ページであまり多くのレコードを使用しないようにしてください

于 2013-03-26T19:18:09.890 に答える