2011-06-26 20 views
0

以下のスクリプトを使用しています。私は10個以上のエントリーがあるときだけ表示するために "次へ"が必要です。大きい(>)スクリプトと小さい(<)スクリプトを実行するにはどうすればよいですか?

コード:

$fetch = mysql_query("SELECT * FROM table LIMIT $startrow, 10")or 
     die(mysql_error()); 
/* 
this next options shows regarldess if there are more than 10 queries or less. 
How can i make it so that it shows only when there are more than 10 queries. 
*/ 
echo '<a href="'.$_SERVER['PHP_SELF'].'?startrow='.($startrow+10).'">Next</a>'; 
$prev = $startrow - 10; 
//only print a "Previous" link if a "Next" was clicked 
if ($prev >= 0) 
    echo '<a href="'.$_SERVER['PHP_SELF'].'?startrow='.$prev.'">Previous</a>'; 

答えて

4

あなたがテーブルの行数カウントするために別のクエリを実行する必要があります。SELECT COUNT(*) FROM tableを、と返された数は $startrow + 10以上であるかどうかを確認します。

+3

の$ startRow属性よりも大きい+ 10 –

+1

@yi_H:真。ありがとう。 –

+0

私は試しています:$ next = $ startrow + 10; if($ next> = 0) echo 'next'; else if($ next <= 0) echo '';なぜそれがうまくいかないのか分かりません。 – KPO

1

助言の言葉。何千回も行われたことを書き換えないでください。あなたが達成しようとしていることは、ページネーション(ページごとのデータ表示)と呼ばれています。これは一般に、ほとんどのPHPフレームワークの一部です。 CodeIgniterやCakePHPなどがあります。プラグインクラスもありますので、大いに役立ちます。

Google検索は:他のはすでに述べたように http://www.google.com/search?q=php+pagination

次の2つのクエリを、通常が必要になります。結果のサブセット(ページあたりの数字&、オフセットポイント)に対する1つのクエリと、結果の合計数に対する1つのクエリ。あなたの改ページに役立つ既存のクラスを探してみてください。

幸運、ジェフ・ウォルターズ

関連する問題