-4

このコードにページネーションを追加する方法は?

1ページのデータを制限したいのですが、一番下に次のようにします:

1 2 3 4 5 6 8 9 10

をクリックするとpage 2、そのページにさらに結果が表示されます。

どうすればそのようにできますか?

<?php

 //connect to database

     mysql_connect('localhost','root','pasword');
     mysql_select_db('root');


/* Get the letter user clicked on and assign it a variable called $sort */
$sort = $_REQUEST['letter'];

/* Let's check if variable $sort is empty. If it is we will create a query to display all customers alphabetically ordered by last name. */
if($sort == ""){


$qry= "SELECT * FROM tree ORDER BY keywords ASC " ;
}else{
/* if varible $sort is not empty we will create a query that sorts out the customers by their last name, and order the selected records ascendingly. */
$qry = "SELECT * FROM tree WHERE keywords LIKE '$sort%' ORDER BY keywords ASC" ;
}
/* Notice the use of '%' wilde card in the above query  "LIKE '$sort%'". */

//next step is to execute the query.
$execute = mysql_query($qry) or die(mysql_error());

/* Before we display results let's create our alphabetical navigation. The easiest way to create the navigation is to use character codes and run them through the "for" loop. */
echo "<p>" ;
for ($i = 65; $i < 91; $i++) {
    printf('<a href="%s?letter=%s">%s</a> | ',
    $PHP_SELF, chr($i), chr($i));
}
echo "</p>" ;

/* now we are ready to display the results. Since out tbl_customers table has only three fileds we will display the results in a paragraphs. In the real world you may need to display the results in a table.
To display the results we will use "do while" loop to fetch the results. If no customers are found we will display an error message. */
if(mysql_num_rows($execute)>0){
do{
echo "<p>" .$result['id']. " " .$result['keywords']. " " .$result['meaning']. "</p>" ;
}while($result = mysql_fetch_assoc($execute));
}else{
echo "<p>No customer found.</p>" ;
} 
?>
4

3 に答える 3

1

まず、データ数を選択して、ページ数を合計で生成します。行数とページあたりのページ数を選択します。

mysql_num_rows($execute);

このようにデータを制限するには、limitコマンドを使用します

$qry= "SELECT * FROM tree ORDER BY keywords ASC limit 0,10 " ;

次に、ページ番号ごとに制限インデックスをインクリメントします

于 2012-12-14T13:05:48.520 に答える
0

以下のコードを使用できます

$page = $_GET['page'];

if ($page < 1)  
{       
   $page = 1;
}

$conc=mysql_connect('localhost','root','');
mysql_select_db('employer',$conc);

$resultsPerPage = 5; 

$startResults = ($page - 1) * $resultsPerPage;

$query = mysql_query('SELECT * FROM employee ') or die(mysql_error());

$numberOfRows=mysql_num_rows($query);

$totalPages = ceil($numberOfRows / $resultsPerPage);

$query = mysql_query("SELECT * FROM employee LIMIT $startResults,$resultsPerPage");

while ($output = mysql_fetch_assoc($query))
{
$result[]=$output;
}


for($i = 1; $i <= $totalPages; $i++)
{

    if($i == $page)
    echo '<strong>'.$i.'</strong>&nbsp';
else
    echo '<a href="?page='.$i.'">'.$i.'</a>&nbsp';
}
于 2012-12-14T13:39:25.480 に答える
0
$page = intval(abs($_GET['page'])); // get security ONE

if(mysql_num_rows($sql)) // get page number to empty location index.php
{
    header('Location: index.php');
}
于 2013-11-02T02:48:11.807 に答える