2012-03-11 8 views
-1

私は、行間のデータの前方または後方をクエリしているデータベースクエリのコマンドは何ですか?ちょうど前と後ろのボタンのように。誰かが私に例を与えることができますか?ありがとう。 exampのためにMysqlの前と後のクエリ

$sql_xxxx = mysql_query("SELECT * FROM xxxx WHERE id='$xxx'") or die (mysql_error()); 
$row_xxxx = mysql_fetch_array($sql_xxxx); 

は今、私は2つの同じクエリを必要とするが、1つの順方向およびデータその他の後方でのため。

+1

私はあなたが質問を幾分明確にする必要があると思います。 –

+0

特定の行の後に行を取得するMySQLコマンド、またはクエリ結果の次の行を取得するPHP関数などが必要ですか? – Ynhockey

+0

詳細を説明すると、クエリを切り替える必要がありますか? – hamed

答えて

0

以上です。

通常は、たとえば、MySQLでのレコードのIDとこれを制御することができます

SELECT * FROM MYTABLE WHERE ID = 1; 

PHPで、あなただけの変数の値を変化させながら、異なる結果を得るために、動的クエリを構築することができます。

私たちは今、同じクエリを取り、それを動的に作成したいとしましょう:

$id = 1; 
$query = "SELECT * FROM MYTABLE WHERE ID = $id "; 

限り、あなたはこのクエリを実行すると、それは今では取っている原因、ID = 1であなたに行を与えます$ id変数の値

次の行が必要な場合は、同じクエリを実行しますが、$ idは次の値を持つ必要があります。

"NEXT"ボタンと "BACK"ボタンを使用すると、$ id変数に1を加算または減算するだけで問題ありません。 これは一例に過ぎません。ほとんどの場合、あなたはidのものがあると仮定してはいけないので、idのものと同じように遊んではいけません。 "DELETE"が存在することを覚えておいてください。

はフォワードへ行く:

ですから、このような次の値を見つけるために、より良い少しクエリを実行しようとすることができ、私はこのことができます願ってい

$query= "SELECT MIN(ID) FROM MYTABLE WHERE ID > $id" 
// This will get you for sure the closest id next to the current one 

and to go back: 
$query= "SELECT MAX(ID) FROM MYTABLE WHERE ID < $id" 

よろしく

+0

ありがとう、これは私が探しているものです。よろしくお願いします。 –

+0

私はうれしいですが、評価することを忘れないでください。私は人々を助けるのが好きではない、私は料金のためにここにいる。笑 – Adrian

0

クエリにLIMITを指定すると、結果として特定の行数が得られます。たとえば、LIMIT 100, 10というクエリを終了すると、100行目から10個の結果が得られます。

このようにして、前/次のボタンを作成できます。このボタンをクリックすると、結果の前または次のページを取得できます。

しかし、ほとんどの場合、必要なものをすべて照会して結果セットを実行するだけです。これを行うには結果を照会し、結果の次の行はそれぞれfetchingです。

0

キーワードLIMITを使用すると、データベースはうれしく「ページ」のデータを返します。

SELECT * FROM posts ORDER BY post_time LIMIT 40,20; -- will return rows 41-60. 

あなただけの(ページ番号が最初のページの0である)page sizepage number * page sizeへの最初のLIMIT数と第二の数を設定することで、PHPからそれを利用することができます。この例では、ページサイズは20で、ページ番号は2(3ページ目)になり、結果は3ページ目のすべての投稿になります。

データベース側からはそれ以上のことはありません。PHPからうまく活用するだけです。

SELECT * FROM `your_table` LIMIT 5, 5 

これは、レコードが表示されます:私が正しく質問を理解していた場合、あなたのクエリでページネーションを実装しようとしているとあなたがそうのように、「制限」条項を利用することになるよう

+0

はい、そのようなものは、そのスクリプトは前方に行く必要がありますか、または1つのバックのために行く必要があります –

+0

@ Reddwarf MySQLは各ユーザーがどのページを閲覧したかを追跡しません。たとえば、 'http://mysite/viewposts.php?page = 1'のようなURLを作成し、PHPの' $ _GET [] 'コレクションからページパラメータを読み込み、ページ番号としてデータベースに渡すことができます上記の通り。誰かが「次のページ」を押すと、そのリンクを 'http://mysite/viewposts.php?page = 2'にしてください。 –

+0

私の意見をクリアしていただきありがとうございます:) –

0

は、それが聞こえますあなたは私はあなたがやろうとしているものを推測することができると思うPHPとMySQLをタグ付けするので6、7、8、9、および10

はここdocumentation

+0

はい、あなたは私を理解していますが、前方に1レコードしかなく、もう1つのレコードに1レコードしか戻っていません。 –

関連する問題