0

データベース内のテーブルから行数を取得しようとしていますが、引き続き間違った値が取得されます。ページネーションのサブセット値を処理するには、行数が必要です。私のテーブルには11個のアイテムがありますが、1個しか返されず、理由がわかりません:(

私の外部接続ファイル:

try {
    $pdo = new PDO('mysql:host=localhost;dbname=name', 'admin', 'password');

} catch (PDOException $e) {
    exit('Database error.');
}

私の記事クラス:

class Article {

    public function fetch_all_articles($start, $max) {
        global $pdo;

        $query = $pdo->prepare("SELECT * FROM articles ORDER BY article_timestamp DESC LIMIT $start, $max");
        $query->execute();
        $articles = $query->fetchAll();
        $query->closeCursor();

        return $articles;
    }

    public function fetch_num_rows() {
        global $pdo;

        $query = $pdo->prepare("SELECT COUNT(*) FROM articles");
        $query->execute();
        $rowCount = $query->rowCount();
        $query->closeCursor();

        return $rowCount;
    }
}

そして私のindex.phpファイル:

$maxArticles = 4;                             //Show only 4 articles per page
$page = $_GET['page'] ? $_GET['page'] : 0;  //Get current page number or assign $page = 0 if no page number exists
$startRow = $page * $maxArticles;           //Get current article subset value                                          

$article = new Article;
$articles = $article->fetch_all_articles($startRow, $maxArticles);    //articles array
$numArticles = $article->fetch_num_rows();                          //number of articles
$rowCount = $article->fetch_num_rows();                             //number of articles

echo $rowCount;
echo $numArticles;

はい、$rowCount と $numArticles の両方が必要です。これらは 2 つの異なる目的で使用されています。

誰でも私を助けることができますか?

4

2 に答える 2

1

交換する必要があります

$rowCount = $query->rowCount();

$rowCount = $query->fetchColumn();

また、FOUND_ROWS()を見てください

fetch_num_rows を 2 回呼び出す意味はありません。それで十分です。

$numArticles = $rowCount = $article->fetch_num_rows();
于 2013-11-12T01:34:26.297 に答える