0

いくつかのフィルターに基づいて、レコードの数を表示するグリッドに取り組んでいます。ユーザーがグリッドの下部にある[もっと見る]リンクをクリックしたときに、それらをページ分割したいのですが、検索しようとしましたが、どちらもページ番号が見つかりました何かまたはある種の自動スクロールしかし、どうすれば私のシナリオで作業できるようになりますか?これまでの私の研究は、リンクをクリックして関数を記述し、 ajaxを使用して次のレコードのバッチ(たとえば、リクエストごとに20)をフェッチする必要がありますが、プログラミング部分はどのように機能しますか?サーバーでPHPを使用しています終わりと私のDBとしてのMysql誰かがそれについて私を導くことができますか。お時間をいただきありがとうございます

4

4 に答える 4

1
if(isset($_GET['page']))
{
    $page=$_GET['page'];
}
else
{
    $page=1;
}

if(isset($_GET['dark']))
{
    $max_result=$_GET['dark'];

}
else
{
    $max_result=5;
}

$from=(($page*$max_result)-$max_result);

mysql_select_db("db",$con);
$sql = "SELECT COUNT(*) FROM `db`.`table` ";
$result=mysql_query($sql);

$total_result=mysql_result($result,0);
$total_pages=ceil($total_result/$max_result);

if($total_result>$max_result)
{
    if($page>1)
    {
        $prev=$page-1;
        echo "<a href=\"".$_SERVER['PHP_SELF']."?dark=".$max_result."&page=$prev\">previous</a>";
    }
    for($i=1;$i<=$total_pages;$i++)
    {
        if($page==$i)
        {
        echo "<strong>".$i."</strong>";
        }
        else
        {
        echo "<a href=\"".$_SERVER['PHP_SELF']."?dark=".$max_result."&page=$i\">$i</a> ";
        }
        if($page<$total_pages)
        {
        $next=$page+1;

        //echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$next\"></a>";
        }
    }

        if($page<$total_pages)
        {
                $next=$page+1;
                echo "<a href=\"".$_SERVER['PHP_SELF']."?dark=".$max_result."&page=$next\">next</a>";
        }
}

         echo "<table><tr>";

            echo "<td><form action='helloworld.php' name='get'>
                <select name='dark'>
                <option value='2'>2</option>
                <option value='5'>5</option>
                <option value='10'>10</option>
                </select>
                <input type='hidden' name='searching' value='yes' /><input type='submit' value='No.of entries'>
                </form></td></tr>";         
            echo "<tr><td><strong>PAGE NUMBER $page of $total_pages.</strong>.</td></tr>";
            echo"</table>";
于 2012-10-22T12:36:20.260 に答える
1

LIMITSQLクエリで試すことができます。

LIMIT offsetURL にandを渡し、それに応じてデータを処理/表示し、現在のページを Web ページlimitに送り返します (これにより、show more リンクの URL を作成できます)。offsetlimit

これは、ほとんどの場所とフレームワークで実装されている方法だと思います

サンディープ

于 2012-10-22T10:25:46.250 に答える
1

クエリの使用中

 SELECT list_of_column FROM table 
 ORDER BY column_id DESC
 LIMIT 20 OFFSET 0

クリックごとにオフセット値を変更するだけで、目的の結果が得られます

PHPのページネーション、参照

于 2012-10-22T10:27:41.220 に答える
1

MysqlQuery では、LIMIT begin, max 関数を使用できます: SELECT * FROM db LIMIT 100, 10 は、オフセット 10 から始まる 10 個のデータセットを選択します。

$_GET または $_POST 変数を javascript 経由で php スクリプトに渡す必要があります。

$.ajax({
    [...],
    url: "script.php",
    data: {
        page: <page to load>
    },
    [...]
})

php スクリプトで、クエリを変更します。

$query = "SELECT * FROM database LIMIT " . $_GET['page'] . ", " . $entrys_per_page;
于 2012-10-22T10:27:47.867 に答える