ホームページ >バックエンド開発 >PHPチュートリアル >距離を計算するSQLにページングを追加する方法
距離を計算するために SQL にページングを追加する方法
$query=mysql_query('select * from shop where lat > '.$lat.'-1 and lat < '.$lat.' 1 and lng> '。 $lng.'-1 および lng < '.$lng.' 1 による ACOS(SIN(('.$lat.' * 3.1415) / 180 ) *SIN((lat * 3.1415) / 180 ) '.$lat.' * 3.1415) / 180 ) * COS((lat * 3.1415) / 180 ) *COS(('.$lng.'* 3.1415) / 180 - (lng * 3.1415) / 180 ) * 6380 asc limit 100 ');
このステートメント。正常な場合、制限の後にページング ページ数とページ上のアイテム数が続きます。ただし、距離計算を追加した後。リミット 100 の役割は 100 キロメートルのデータを計算することだけです。ページネーションのページ数とページごとのステートメントの数は追加できません。追加した場合は表示できません。何故ですか?変更するにはどうすればよいですか?
-----ソリューションのアイデア----------------------
制限 100 が最大ですreturn 100 records はロジックとは何の関係もありません。
limit $offset, $limit;
$offset は開始までにスキップするレコードの数です
$limit はフェッチするレコードの数です
これら 2 つを使用してページネーションを取得します
例えば、
$page = 2;
$pagesize 100;
limit (2-1)*100, 100; とすると、2ページ目のレコードを取得できます。