0

mysql データベースからデータを取得するページを作成しました。ページごとに 10 個の結果のみを表示し、次のボタンを使用して他の結果を表示し、前のボタンを使用して前の結果を表示したい。

次のコードを使用してデータを取得しました。

$item=$_POST('item');
$query=mysql_query("select name,address,contact from info_tb where keyword='$item'");

while($row=mysql_fetch_array('$query'))
{
echo "Name : row[0]":
echo "Address : row[1]":
echo "Contact : row[2]":
}
4

3 に答える 3

2

mySQL クエリでLIMITキーワードを使用します。

SELECT * FROM `your_table` LIMIT 0, 10 

レコードをナビゲートしたいようです..

 SELECT * FROM `your_table` LIMIT 5, 10 

これらのレコードが表示されます 6、7、8、9、10、11、12、13、14、15

ナビゲートしたい場合は、図のようにこのパラメーターを制御する必要があります。

SELECT * FROM `your_table` LIMIT 5, 10
                                 ^  

最近コードを投稿したようです。コードでこのようなことを試してください。

$item=$_POST['item'];
$page=$_POST['pno'];
$query=mysql_query("select name,address,contact from info_tb where keyword='$item' limit '$page',10");
于 2013-09-14T06:35:24.860 に答える
1

最初のページでは、データベースから最初の 10 件の結果 (1、2、3 ... 9、10 行) を取得する必要があります。

SELECT * FROM `table` LIMIT 0, 10

結果を印刷します。たとえば、ユーザーが 4 ページにいる場合、31、32、33.. 39、40 行から取得する必要があります。PHP などのサーバー スクリプトでオフセットと row_count を計算します。

$page_no = 4;
$row_count = 10; 
$offset = ($page_no - 1) * $row_count; // results 30

これで、SQL は次のようになります。

SELECT * FROM `table` LIMIT 30, 10;

したがって、印刷できる 31、32、33... 行があります。ページ番号は、GET または POST パラメーターを介して取得できます。

于 2013-09-14T06:50:57.643 に答える
0

もちろん、結果全体を印刷し、jQuery を使用してページ分割することもできます。

<!-- Download jquery and link locally.  Directlinking to jQuery should only be used for testing purposes. -->
<script type='text/javascript' src='http://code.jquery.com/jquery-git2.js'></script>
<script type="text/javascript">
    var pageno = 0;
    var maxpageno = 0;
    function show(){
        if (pageno < 0) { pageno = 0}
        if (pageno > maxpageno) { pageno = maxpageno}
        $('#results tbody tr').hide();
        $('#results tbody tr.page'+pageno).show();
    }
</script>
<body onload="show();">
<?php
    $sql = "SELECT * FROM books";   
    //result is boolean for query other than SELECT, SHOW, DESCRIBE and EXPLAIN
    $result = $short_connect->query($sql);
    if (($result) && ($result->num_rows > 0))
    {
        $results = array();
        print "<table id=\"results\">\n<thead>\n<tr><th>id</th><th>title</th><th>isbn</th><th>ean</th><th>year</th></tr>\n
        <tr><td colspan=5>
        <a href=\"#null\" onclick=\"pageno = 0; show();\">&lt;&lt;</a>
        <a href=\"#null\" onclick=\"pageno--; show();\">&lt;</a>
        <a href=\"#null\" onclick=\"pageno++; show();\">&gt;</a>
        <a href=\"#null\" onclick=\"pageno = maxpageno; show();\">&gt;&gt;</a>
        </th></tr>\n
        </thead>\n<tbody>\n";  //table starter and header
        $i = 0;                       //start count
        $ipp = 10;                        //items per page
        while ($row = $result->fetch_array())
        {
            $rop = $i % $ipp;           //result on page
            $pno = floor($i / $ipp);        //page number
            $i++;                         //increase count
            print "<tr class=\"page$pno\"><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td></tr>\n";
        }
        print "</tbody>\n<tfoot><tr><td colspan=5>
        <a href=\"#null\" onclick=\"pageno = 0; show();\">&lt;&lt;</a>
        <a href=\"#null\" onclick=\"pageno--; show();\">&lt;</a>
        <a href=\"#null\" onclick=\"pageno++; show();\">&gt;</a>
        <a href=\"#null\" onclick=\"pageno = maxpageno; show();\">&gt;&gt;</a>
        </td></tr>\n</tfoot>\n</table>\n"; // footer
        $result->free();
    }
    $short_connect->close();
    print "<script type=\"text/javascript\"> maxpageno = $pno;</script>";
?>
</body>
于 2013-09-14T10:25:47.723 に答える