0

phpMyAdmin でビューを作成しました。ビューのテーブルには 37 件の結果がありますが、カウントには 30 件の結果しか表示されていません。

次のようにステートメントを入力すると

SELECT COUNT(*) FROM `vwk_activity` LIMIT 0,30

カウントが37の結果であることが表示されますが、試してみると

SELECT COUNT(*) FROM `vwk_activity` LIMIT 30,30

空を返します。入力すると

SELECT COUNT(*) FROM `vwk_activity` LIMIT 50

これも 37 を返します。

これは私がやろうとしていることの例です

// Set Page Limit
$page_limit = 30;
// Get Page Number
if (!isset($_GET['page']) ){$start=0;} else {$start = ($_GET['page'] - 1) * $page_limit;}
/* Check if Activity in DB */
try {
    $rs_check = $dbh->prepare("SELECT COUNT(*) FROM `vwk_activity` LIMIT ".$start.",".$page_limit);
    $rs_check->execute();
} catch (PDOException $e) {
    print "There was an error: " . $e->getMessage() . "<br/>";
    die();
}
$total = $rs_check->fetchColumn();

これは他の多くのページで機能しますが、何らかの理由でこのページでは機能しません。

4

2 に答える 2

1

select count(*) は、テーブル内のレコード数を 1 行で返します... レコードごとに 1 行ではありません。カウントが 2000 万の場合、2000 万を含む 1 行が返されます。

したがって、このクエリは 1 行のみを返します。Limit 0,30 と limit 50 は両方とも、37 という最初で唯一の行を返します。 Limit 30,30 は、行 30 から 30 行を返すため、この場合は何も返しません (これは 1 行しか返さないため、存在しません)。

レコードごとに 1 行を表示する場合は、select * from ... を試してください。

于 2013-09-09T21:33:08.340 に答える
0

config.inc.php でこれを試してください:

$cfg['MaxExactCountViews'] = 1000;

デフォルトでは、phpMyAdmin はビューの行数をカウントしないため、ナビゲーションで問題が発生します。この値を使用すると、欠落している 7 行に到達するためのナビゲーション コントロールが表示されるはずです。

于 2013-09-10T00:03:21.870 に答える